EDIT TERBARU: 8/23/19
The tanggal-fns perpustakaan bekerja seperti moment.js tetapi memiliki jejak WAY lebih kecil. Ini memungkinkan Anda memilih fungsi mana yang ingin Anda sertakan dalam proyek Anda sehingga Anda tidak perlu mengkompilasi seluruh perpustakaan untuk memformat tanggal hari ini. Jika lib pihak ke-3 minimal bukan pilihan untuk proyek Anda, saya mendukung solusi yang diterima oleh Samuel Meddows di bagian atas.
Melestarikan sejarah di bawah karena membantu beberapa orang. Tetapi sebagai catatan, ini cukup rumit dan dapat rusak tanpa peringatan, seperti juga sebagian besar solusi pada posting ini
EDIT 2/7/2017
Solusi JS satu baris:
tl; dr
var todaysDate = new Date(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i) ? new Date(Date.now()).toLocaleString().split(' ')[0].split(',')[0] : new Date(Date.now()).toLocaleString().split(' ')[1] + " " + new Date(Date.now()).toLocaleString().split(' ')[2] + " " + new Date(Date.now()).toLocaleString().split(' ')[3];
edge, ff latest, & chrome return todaysDate = "2/7/2017"
"works" * di IE10 +
Penjelasan
Saya menemukan bahwa IE10 dan IE Edge melakukan hal-hal yang sedikit berbeda. dengannew Date(Date.now()).toLocaleString()
sebagai input,
Pengembalian IE10:
"Tuesday, February 07, 2017 2:58:25 PM"
Saya bisa menulis fungsi panjang yang besar dan FTFY. Tetapi Anda benar-benar harus menggunakan moment.js untuk hal ini. Skrip saya hanya membersihkan ini dan memberi Anda notasi tradisional AS yang diperluas :> todaysDate = "March 06, 2017"
IE EDGE kembali:
"2/7/2017 2:59:27 PM"
Tentu saja tidak semudah itu. String tanggal Edge memiliki karakter "•" yang tidak terlihat di antara setiap karakter yang terlihat. Jadi tidak hanya kita sekarang akan memeriksa apakah karakter pertama adalah angka, tetapi 3 karakter pertama, karena ternyata setiap karakter di seluruh rentang tanggal akhirnya akan menjadi titik atau garis miring di beberapa titik. Jadi untuk menjaga hal-hal sederhana, cukup .slice () tiga karakter pertama (penyangga kecil terhadap shenanigans masa depan) dan kemudian periksa nomor. Mungkin perlu dicatat bahwa titik-titik tak terlihat ini berpotensi bertahan dalam kode Anda. Saya mungkin akan menggali lebih dalam jika Anda memiliki rencana yang lebih besar daripada hanya mencetak string ini ke tampilan Anda.
∴ diperbarui satu-liner:
var todaysDate = new Date(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i) ? new Date(Date.now()).toLocaleString().split(' ')[0].split(',')[0] : new Date(Date.now()).toLocaleString().split(' ')[1] + " " + new Date(Date.now()).toLocaleString().split(' ')[2] + " " + new Date(Date.now()).toLocaleString().split(' ')[3];
Itu menyebalkan untuk dibaca. Bagaimana tentang:
var dateString = new Date(Date.now()).toLocaleString();
var todaysDate = dateString.slice(0,3).match(/[0-9]/i) ? dateString.split(' ')[0].split(',')[0] : dateString.split(' ')[1] + " " + dateString.split(' ')[2] + " " + dateString.split(' ')[3];
JAWABAN ASLI
Saya punya satu kalimat untuk Anda:
new Date(Date.now()).toLocaleString().split(', ')[0];
dan [1]
akan memberi Anda waktu hari.
var currentTime = new Date();