Bagaimana cara mengubah tanggal normal 2012.08.10
menjadi stempel waktu unix di javascript?
Fiddle: http://jsfiddle.net/J2pWj/
Saya telah melihat banyak posting di sini yang mengubahnya menjadi PHP, Ruby, dll ... Tapi saya perlu melakukan ini di dalam JS.
unix timestamp
sangat mendasar untuk semua teknik dan ilmu komputer. Berharap ada metode kenyamanan bawaan. Saat ini saya menggunakanMath.floor((+new Date()) / 1000);
Jawaban:
Periksa dokumentasi Tanggal JavaScript .
sumber
Penting untuk menambahkan
toFixed(0)
untuk menghapus desimal apa pun saat membagi dengan 1000 untuk mengubah dari milidetik ke detik.The
.getTime()
mengembalikan fungsi timestamp dalam milidetik, tapi benar cap waktu unix selalu dalam detik.sumber
Anda harus memeriksa api moment.js, ini sangat mudah digunakan dan memiliki banyak fitur bawaan.
Saya pikir untuk masalah Anda, Anda bisa menggunakan sesuatu seperti ini:
sumber
sumber
Anda cukup menggunakan operator + unary
(+new Date('2012.08.10')/1000).toFixed(0);
http://xkr.us/articles/javascript/unary-add/ - lihat di bawah Tanggal.
sumber
/
sudah menjadi operator matematika. Juga,toFixed
mengembalikan string dan bukan angka, jika jenisnya penting ..Anda bisa menggunakan Date.parse () , tetapi format input yang diterima bergantung pada implementasi. Namun, jika Anda dapat mengonversi tanggal ke format ISO (YYYY-MM-DD) , sebagian besar implementasi harus memahaminya.
Lihat Mengapa Date.parse memberikan hasil yang salah? .
sumber
Dalam hal ini, penting untuk mengembalikan hanya bilangan bulat (jadi pembagian sederhana tidak akan berhasil), dan juga hanya mengembalikan detik yang sebenarnya telah berlalu (itulah mengapa kode ini digunakan
Math.floor()
dan tidakMath.round()
).sumber
Anda dapat melakukannya menggunakan Metode Date.parse ().
Date.parse ("03.03.2016") keluaran-> 1456959600000
Date.parse ("2015-12-12") output-> 1449878400000
sumber
sumber
Setelah membandingkan stempel waktu dengan yang dari PHP, semua hal di atas tampaknya tidak benar untuk zona waktu saya. Kode di bawah ini memberi saya hasil yang sama dengan PHP yang paling penting untuk proyek yang saya lakukan.
Saya menggunakan ini di NodeJS, dan kami memiliki zona waktu 'Australia / Sydney'. Jadi, saya harus menambahkan ini di file .env:
Di atas setara dengan:
sumber
ubah stempel waktu ke stempel waktu unix.
const date = 1513787412; const unixDate = new Date(date * 1000);// Dec 20 2020 (object)
untuk mendapatkan cap waktu setelah konversi
const TimeStamp = new Date(date*1000).getTime(); //1513787412000
sumber