Jawaban:
var seconds = new Date() / 1000;
Atau, untuk versi yang kurang simpel:
var d = new Date();
var seconds = d.getTime() / 1000;
Jangan lupa untuk Math.floor()
atau Math.round()
membulatkan ke bilangan bulat terdekat atau Anda mungkin mendapatkan desimal sangat aneh yang tidak Anda inginkan:
var d = new Date();
var seconds = Math.round(d.getTime() / 1000);
Number(new Date())
untuk mendapatkan angka, atau bahkan +(new Date())
, atau menggunakan instance Date apa pun dalam konteks numerik seperti new Date()/1000
dan Javascript akan sangat membantu mengkonversi instance Date itu menjadi sebuah angka untuk bekerja dengan persamaan matematika Anda.
Coba ini:
new Date().getTime() / 1000
Anda mungkin ingin menggunakan Math.floor()
atau Math.round()
memotong fraksi milidetik.
Anda ingin detik sejak zaman
function seconds_since_epoch(){ return Math.floor( Date.now() / 1000 ) }
contoh penggunaan
foo = seconds_since_epoch();
Solusi di atas menggunakan properti instance. Cara lain adalah dengan menggunakan properti kelas Date.now
:
var time_in_millis = Date.now();
var time_in_seconds = time_in_millis / 1000;
Jika Anda ingin time_in_seconds menjadi bilangan bulat, Anda memiliki 2 opsi:
Sebuah. Jika Anda ingin konsisten dengan pemotongan gaya C:
time_in_seconds_int = time_in_seconds >= 0 ?
Math.floor(time_in_seconds) : Math.ceil(time_in_seconds);
b. Jika Anda ingin memiliki definisi matematis tentang pembagian integer, tahan saja. (Divisi bilangan bulat Python melakukan ini).
time_in_seconds_int = Math.floor(time_in_seconds);
Jika Anda hanya menginginkan detik sebagai bilangan bulat tanpa desimal yang mewakili milidetik, gunakan ini:
var seconds = Math.floor(new Date() / 1000);
Cara pilihan saya:
var msEpoch = (+new Date());
var sEpoch = (+new Date()) / 1000;
Untuk informasi lebih lanjut tentang +
lompat ke lubang kelinci .
Versi paling sederhana:
Math.floor(Date.now() / 1000)
Di chrome, Anda dapat membuka konsol dengan F12 dan menguji kode berikut:
var date = new Date().getTime()
console.debug('date: ' + date);
if (Date.now() < date)
console.debug('ko');
else
console.debug('ok');
EPOCH means time from 01 January 1970
var date = new Date();
Following line will return the number of milliseconds from 01 Jaunary 1970
var ms = date.getTime();
Following line will convert milliseconds to seconds
var seconds = Math.floor(ms/1000);
console.log("Seconds since epoch =",seconds);
var seconds = new Date() / 1000;
<- sihir misterius macam apa ini?