Bagaimana cara mendapatkan tanggal saat ini dalam JavaScript?
javascript
date
date-formatting
Suresh Chaganti
sumber
sumber
var currentTime = new Date();
new Date()
mengembalikan waktu saat ini , bukan tanggal saat ini . Perbedaannya penting jika Anda mencoba membandingkannya dengan tanggal lain yang tidak memiliki komponen waktu (yaitu pada tengah malam).Jawaban:
Gunakan
new Date()
untuk menghasilkanDate
objek baru yang berisi tanggal dan waktu saat ini.Ini akan memberi Anda tanggal hari ini dalam format hh / bb / tttt.
Cukup ubah
today = mm +'/'+ dd +'/'+ yyyy;
ke format apa pun yang Anda inginkan.sumber
01
,02
, ...,09
Date.prototype.toLocaleDateString()
Metode baru adalah solusi yang lebih fleksibel. Ini adalah bagian dari JavaScript sejak ECMAScript 5.1 dan didukung dengan baik oleh peramban yang ramah lingkungan. MDN:toLocaleDateString()
Gunakan
replace
opsi jika Anda akan menggunakan kembaliutc
variabel, sepertinew Date(utc)
, karena Firefox dan Safari tidak mengenali tanggal dengan tanda hubung.sumber
toUTCString()
kembali sebagai utc datetime.moment( new Date().toJSON().slice(0, 10) )
Jika Anda menginginkan sesuatu yang sederhana bagi pengguna akhir ...
Also, fixed a small suffix issue in the first version below. Now properly returns suffix.
Pembaruan ini hadir dalam
2rasa, masih relatif kecil, meskipun tidak sekecil jawaban asli saya di atas. Jika Anda ingin yang sangat kecil, ikuti saja.Juga Catatan: Ini masih kurang kembung dari moment.js. Meskipun moment.js bagus, imo, ia memiliki terlalu banyak metode sekuler, yang membutuhkan momen belajar seolah-olah itu adalah bahasa. Milik saya di sini menggunakan format umum yang sama dengan PHP: date .
tautan langsung
Dalam mod ini, karakter format terinspirasi oleh PHP: date . Untuk daftar lengkap, silakan lihat README saya
Mod ini juga memiliki daftar format pre-made yang jauh lebih lama. Untuk menggunakan format premade, cukup masukkan nama kuncinya.
dateFormat(new Date(), 'pretty-a');
Seperti yang Anda perhatikan, Anda dapat menggunakan double
\
untuk melarikan diri karakter.sumber
Yang sesingkat mungkin.
Untuk mendapatkan format seperti "2018-08-03":
Untuk mendapatkan format seperti "8/3/2018":
Selain itu, Anda dapat memberikan lokal sebagai argumen, misalnya
toLocaleDateString("sr")
, dll.sumber
Jika Anda hanya ingin kencan tanpa info waktu, gunakan:
sumber
Coba ini:
Hasilnya akan seperti
sumber
Jika Anda mencari lebih banyak kontrol granular atas format tanggal, saya sangat merekomendasikan untuk memeriksa momen. Perpustakaan yang hebat - dan hanya 5KB. http://momentjs.com/
sumber
Anda dapat menggunakan moment.js: http://momentjs.com/
sumber
moment().format("L")
untuk menghormati lokal saat ini.Untuk memecahnya menjadi langkah-langkah:
(new Date()).toString()
memberikan "Jumat 28 Juni 2013 15:30:18 GMT-0700 (PDT)"(new Date()).toString().split(' ')
membagi string di atas pada setiap spasi dan mengembalikan array sebagai berikut: ["Jum", "Jun", "28", "2013", "15:31:14", "GMT-0700", "(PDT)" ](new Date()).toString().split(' ').splice(1,3).join(' ')
mengambil nilai kedua, ketiga dan keempat dari array di atas, menggabungkannya dengan spasi, dan mengembalikan string "Jun 28 2013"sumber
Date().split(' ').splice(1,3).join(' ')
Ini berfungsi setiap saat:
sumber
Anda juga dapat memanggil metode
toLocaleDateString
dengan dua parameter:Artikel tentang MSDN . Lebih lanjut tentang metode ini di MDN .
sumber
new Date().toLocaleDateString("de-de")
melakukan trik untukku.Versi lebih bersih dan lebih sederhana:
Hasil bervariasi sesuai dengan lokal pengguna :
sumber
Jika Anda senang dengan format YYYY-MM-DD, ini juga akan berhasil.
new Date().toISOString().split('T')[0]
2018-03-10
sumber
Anda bisa menggunakan pustaka Date.js yang memperluas objek Date, sehingga Anda bisa memiliki metode .today ().
sumber
Anda bisa mendapatkan panggilan saat ini dengan metode statis sekarang seperti ini:
referensi:
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/now
sumber
var dtToday = new Date(date.now);
Jawaban Varun tidak memperhitungkan TimezoneOffset . Ini adalah versi yang dapat:
Itu
TimezoneOffset
adalah menit, sedangkan konstruktor Tanggal mengambil milidetik, sehingga penggandaan oleh60000
.sumber
Jawaban Terpendek adalah:
new Date().toJSON().slice(0,10)
sumber
Hasil:
sumber
Karena
toISOString()
hanya akan mengembalikan waktu UTC saat ini, bukan waktu setempat. Kita harus membuat tanggal dengan menggunakan fungsi '.toString ()' untuk mendapatkan tanggal dalamyyyy-MM-dd
format sepertiUntuk mendapatkan tanggal dan waktu dalam
yyyy-MM-ddTHH:mm:ss
formatUntuk mendapatkan tanggal dan waktu dalam
yyyy-MM-dd HH:mm:ss
formatsumber
Jika Anda menginginkan
DD/MM/YYYY
format sederhana , saya baru saja membuat solusi sederhana ini, meskipun tidak awalan angka nol yang hilang.sumber
akan bekerja juga
sumber
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:
Penjelasan
Saya menemukan bahwa IE10 dan IE Edge melakukan hal-hal yang sedikit berbeda. dengan
new Date(Date.now()).toLocaleString()
sebagai input,Pengembalian IE10:
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:
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:
Itu menyebalkan untuk dibaca. Bagaimana tentang:
JAWABAN ASLI
Saya punya satu kalimat untuk Anda:
dan
[1]
akan memberi Anda waktu hari.sumber
Anda bisa menggunakan ini
HTML adalah
sumber
Jika Anda menggunakan jQuery. Coba liner yang satu ini:
Ini adalah konvensi untuk memformat tanggal
Berikut ini adalah referensi untuk datepicker jQuery
sumber
Cara terbaik untuk melakukannya (sambil mempertimbangkan zona waktu Anda saat ini, memanfaatkan format ISO yyyy-mm-dd) adalah:
Biasanya, ini adalah format tanggal yang kompatibel untuk semua keperluan dan Anda dapat mengubahnya menjadi nilai tanggal murni jika diperlukan:
sumber
Anda dapat checkout ini
Dan lihat dokumentasi untuk konstruktor Date (). tautan
sumber
Apa masalahnya dengan ini .. Cara terbersih untuk melakukan ini adalah
var currentDate=new Date().toLocaleString().slice(0,10);
sumber
3/4/2018,
, lebih baik digunakannew Date().toJSON().slice(0,10)
..slice(0,10)
Ini dapat membantu Anda
Ini akan mencetak tanggal saat ini dalam format dd / MM / yyyy
sumber
Ini bagus untuk mendapatkan tanggal yang diformat
sumber
Saya pikir ini adalah pertanyaan lama tetapi cara termudah adalah sebagai berikut:
Ini akan mengambil waktu saat ini, meneruskannya ke string berdasarkan lokasi dan kemudian Anda dapat memanggil fungsi CurrentTime untuk menampilkan waktu. Bagi saya ini adalah cara paling efektif untuk mendapatkan cap waktu untuk sesuatu.
sumber