Saya menyimpan waktu dalam database MySQL sebagai cap waktu Unix dan itu akan dikirim ke beberapa kode JavaScript. Bagaimana saya bisa mendapatkan waktu keluar dari itu?
Misalnya, dalam format HH / MM / SS.
javascript
date
time
date-format
time-format
roflwaffle
sumber
sumber
Jawaban:
Untuk informasi lebih lanjut mengenai objek Date, silakan merujuk ke MDN atau spesifikasi ECMAScript 5 .
sumber
sumber
var min = a.getMinutes() < 10 ? '0' + a.getMinutes() : a.getMinutes(); var sec = a.getSeconds() < 10 ? '0' + a.getSeconds() : a.getSeconds();
getMonth()
mengembalikan angka bulan antara 0 dan 11, dengan demikiana.getMonth() - 1
salah.JavaScript berfungsi dalam milidetik, jadi pertama-tama Anda harus mengubah cap waktu UNIX dari detik menjadi milidetik.
sumber
Saya sebagian ke
Date.format()
perpustakaan Jacob Wright , yang mengimplementasikan format tanggal JavaScript dengan gayadate()
fungsi PHP .sumber
format is not a function
. Tapi ini tampaknya berhasil: stackoverflow.com/a/34015511/7550772Menggunakan:
dan untuk waktu:
lihat Date.prototype.toLocaleDateString ()
sumber
toLocaleString
sertakan tanggal dan waktu.Berikut ini adalah solusi satu-liner terpendek untuk memformat detik sebagai
hh:mm:ss
:NB: Solusi ini tidak memerlukan perpustakaan pihak ketiga dan didukung di semua browser modern dan mesin JavaScript.
sumber
toTimeString
tidak bekerja dengan baik dengan zona waktu. Sayangnya hasil edit Anda ditolak sebelum saya melihatnya. Namun, saya menyarankan untuk menggunakannyatoISOString
sebagai gantinya, karenatoGMTString
sudah usang dan dapat mengembalikan hasil yang berbeda pada platform yang berbeda.Saya akan berpikir tentang menggunakan perpustakaan seperti momentjs.com , yang membuatnya sangat sederhana:
Berdasarkan cap waktu Unix:
Berdasarkan pada string tanggal MySQL:
sumber
console.log
contoh Anda , saya bingung tentang format karena/
, tapi itu banyak membantu saya.Stempel waktu UNIX adalah jumlah detik sejak 00:00:00 UTC pada 1 Januari 1970 (menurut Wikipedia ).
Objek Argumen Tanggal dalam Javascript adalah jumlah milidetik sejak 00:00:00 UTC pada 1 Januari 1970 (menurut dokumentasi Javascript W3Schools ).
Lihat kode di bawah ini misalnya:
memberi:
sumber
solusi satu liner terpendek untuk memformat detik sebagai jj: mm: dd: varian:
sumber
Menggunakan Moment.js , Anda bisa mendapatkan waktu dan tanggal seperti ini:
Dan Anda hanya bisa mendapatkan waktu menggunakan ini:
sumber
Masalah dengan solusi yang disebutkan di atas adalah, bahwa jika jam, menit atau detik, hanya memiliki satu digit (yaitu 0-9), waktunya akan salah, misalnya bisa 2: 3: 9, tetapi seharusnya lebih dari 02: 03:09.
Menurut halaman ini, tampaknya ini merupakan solusi yang lebih baik untuk menggunakan metode "toLocaleTimeString" Date.
sumber
date.toLocaleTimeString()
toTimeString
metode. Periksa di sini: stackoverflow.com/a/35890537/1249581 .Cara lain - dari tanggal ISO 8601 .
sumber
Saat ini Anda harus menggunakan cap waktu unix:
sumber
Berdasarkan jawaban @ shomrat, berikut adalah cuplikan yang secara otomatis menulis datetime seperti ini (sedikit mirip dengan tanggal StackOverflow untuk jawaban:)
answered Nov 6 '16 at 11:51
:atau
atau (jika tahun berbeda tetapi sama dari hari ini)
atau (jika satu tahun dari hari ini)
sumber
Solusi modern yang tidak memerlukan perpustakaan 40 KB:
Intl.DateTimeFormat adalah cara imperialistik non-budaya untuk memformat tanggal / waktu.
sumber
Stempel waktu saya diambil dari backend PHP. Saya mencoba semua metode di atas dan tidak berhasil. Saya kemudian menemukan tutorial yang berhasil:
metode di atas akan menghasilkan hasil ini
Ada banyak metode yang bekerja sempurna dengan cap waktu. Tidak bisa mendaftar semuanya
sumber
sumber
Perhatikan nol masalah dengan beberapa jawaban. Misalnya, stempel waktu
1439329773
akan secara keliru dikonversi ke12/08/2015 0:49
.Saya menyarankan untuk menggunakan yang berikut ini untuk mengatasi masalah ini:
Sekarang menghasilkan:
sumber
sumber
sumber
Lihat Date / Epoch Converter .
Anda perlu
ParseInt
, jika tidak, tidak akan berhasil:sumber
Anda dapat menggunakan fungsi berikut untuk mengubah cap waktu Anda menjadi
HH:MM:SS
format:Tanpa melewati pemisah, ia digunakan
:
sebagai pemisah (default):Jika Anda ingin menggunakan
/
sebagai pemisah, cukup berikan sebagai parameter kedua:Demo
Lihat juga Fiddle ini .
sumber
sumber
Jika Anda ingin mengonversi durasi waktu Unix menjadi jam nyata, menit, dan detik, Anda bisa menggunakan kode berikut:
sumber
sumber
Kode di bawah ini juga menyediakan milidetik 3 digit, ideal untuk awalan log konsol:
sumber
moment.js
https://momentjs.com/
sumber
day.js
github.com/iamkun/dayjsJawaban yang diberikan oleh @Aron berfungsi, tetapi tidak berhasil bagi saya karena saya mencoba mengubah stempel waktu mulai dari tahun 1980. Jadi saya membuat beberapa perubahan sebagai berikut
Jadi, jika Anda memiliki cap waktu mulai dari satu dekade atau lebih, gunakan saja ini. Ini menyelamatkan banyak sakit kepala bagi saya.
sumber