Pertanyaan Bagaimana Anda mendapatkan stempel waktu dalam JavaScript?


Bagaimana saya bisa mendapatkan stempel waktu dalam JavaScript?

Sesuatu yang mirip dengan stempel waktu Unix, yaitu, satu nomor yang mewakili waktu dan tanggal saat ini. Baik sebagai angka atau string.


3358
2017-10-21 09:29


asal


Jawaban:


Singkat & Singkat:

+ new Date()

Operator yang tidak seperti plus memicu valueOf metode dalam Date objek dan mengembalikan stempel waktu (tanpa perubahan apa pun).

Detail:

Di hampir semua browser saat ini yang dapat Anda gunakan Date.now() untuk mendapatkan stempel waktu UTC milidetik; Pengecualian penting untuk ini adalah IE8 dan sebelumnya (lihat tabel kompatibilitas).

Anda dapat dengan mudah membuat shim untuk ini, meskipun:

if (!Date.now) {
    Date.now = function() { return new Date().getTime(); }
}

Untuk mendapatkan stempel waktu detik, Kamu dapat memakai:

Math.floor(Date.now() / 1000)

Atau alternatifnya Anda bisa menggunakan:

Date.now() / 1000 | 0

Yang seharusnya sedikit lebih cepat, tetapi juga kurang bisa dibaca (juga lihat jawaban ini).

Saya akan merekomendasikan menggunakan Date.now() (dengan kompatibilitas shim). Ini sedikit lebih baik karena lebih pendek & tidak membuat yang baru Date obyek. Namun, jika Anda tidak ingin kompatibilitas shim & maksimum, Anda bisa menggunakan metode "lama" untuk mendapatkan stempel waktu milidetik:

new Date().getTime()

Yang kemudian dapat dikonversi ke detik seperti ini:

Math.round(new Date().getTime()/1000)

Dan Anda juga bisa menggunakan valueOf metode yang kami tunjukkan di atas:

new Date().valueOf()

Cap waktu dalam Milidetik

var timeStampInMs = window.performance && window.performance.now && window.performance.timing && window.performance.timing.navigationStart ? window.performance.now() + window.performance.timing.navigationStart : Date.now();

console.log(timeStampInMs, Date.now());


4148
2017-10-21 09:32



Saya suka ini, karena itu kecil:

+new Date

Saya juga suka ini, karena sama pendek dan kompatibel dengan peramban modern, dan lebih dari 500 orang memilih bahwa lebih baik:

Date.now()

429
2018-02-18 00:33



JavaScript berfungsi dengan jumlah milidetik sejak zaman itu sementara sebagian besar bahasa lain bekerja dengan detik. Anda dapat bekerja dengan milidetik tetapi segera setelah Anda menyampaikan nilai untuk mengatakan PHP, fungsi asli PHP mungkin akan gagal. Jadi untuk memastikan saya selalu menggunakan detik, bukan milidetik.

Ini akan memberi Anda stempel waktu Unix (dalam detik):

var unix = Math.round(+new Date()/1000);

Ini akan memberi Anda milidetik sejak zaman (bukan stempel waktu Unix):

var milliseconds = new Date().getTime();

229
2018-05-11 22:27



var time = Date.now || function() {
  return +new Date;
};

time();

126
2017-10-21 10:05



Saya memberikan banyak solusi dengan deskripsi dalam jawaban ini. Jangan ragu untuk bertanya jika ada yang tidak jelas
PS: sayangnya seseorang menggabungkan ini ke jawaban teratas tanpa memberikan kredit.


Solusi cepat dan kotor:

Date.now() /1000 |0

PERINGATAN: saya t mungkin break in 2038 dan kembalikan angka negatif jika Anda melakukannya |0 sihir. Menggunakan Math.floor() alih-alih pada waktu itu


95
2017-07-12 07:15



var timestamp = Number(new Date()); // current time as number

69
2017-10-21 13:00



jQuery menyediakan metode sendiri untuk mendapatkan stempel waktu:

var timestamp = $.now();

(selain itu hanya mengimplementasikan (new Date).getTime() ekspresi)

REF:  http://api.jquery.com/jQuery.now/


50
2018-03-15 14:19



Hanya untuk menambahkan, inilah fungsi untuk mengembalikan string timestamp di Javascript. Contoh: 15:06:38 PM

function displayTime() {
    var str = "";

    var currentTime = new Date()
    var hours = currentTime.getHours()
    var minutes = currentTime.getMinutes()
    var seconds = currentTime.getSeconds()

    if (minutes < 10) {
        minutes = "0" + minutes
    }
    if (seconds < 10) {
        seconds = "0" + seconds
    }
    str += hours + ":" + minutes + ":" + seconds + " ";
    if(hours > 11){
        str += "PM"
    } else {
        str += "AM"
    }
    return str;
}

36
2017-09-21 19:12



console.log(new Date().valueOf()); // returns the number of milliseconds since the epoch


34
2018-04-30 16:53



Selain opsi lain, jika Anda menginginkan ISO dengan format tanggal, Anda bisa mendapatkannya langsung

console.log(new Date().toISOString());


29
2018-01-29 15:08



Yang belum saya lihat

Math.floor(Date.now() / 1000); // current time in seconds

Satu lagi yang belum saya lihat adalah

var _ = require('lodash'); // from here https://lodash.com/docs#now
_.now();

22
2018-03-31 08:18