Saya mencoba menggunakan JS untuk mengubah date object
string menjadi YYYYMMDD
format. Apakah ada cara yang lebih mudah daripada concatenating Date.getYear()
, Date.getMonth()
dan Date.getDay()
?
javascript
date
Pembalas IVR
sumber
sumber
Jawaban:
Bagian kode yang diubah yang sering saya gunakan:
sumber
[1]
dengan.length===2
, karena pengindeks pada string tidak sepenuhnya didukung. Lihat jawaban ini untuk alasan mengapa.[this.getFullYear(), mm<10 ? '0'+ mm: mm, dd<10 ? '0'+ dd : dd].join('.')
var mm = (this.getMonth() + 101).toString().substring(1, 3)
Saya tidak suka menambahkan prototipe. Alternatifnya adalah:
sumber
rightNow
variabel di sekitar, Anda dapat membungkusnew Date
dan mengembalikan semuanya dalam satu baris:(new Date()).toISOString().slice(0,10).replace(/-/g,"")
YYYYMMDDHHmmSSsss
, jadi saya melakukan ini:var ds = (new Date()).toISOString().replace(/[^0-9]/g, "");
. Cukup sederhana, tetapi harus dikemas.rightNow.setMinutes(rightNow.getMinutes() - rightNow.getTimezoneOffset()); rightNow.toISOString().slice(0,10)
Anda dapat menggunakan
toISOString
fungsi ini:Ini akan memberi Anda format "yyyy-mm-dd".
sumber
Moment.js bisa menjadi temanmu
sumber
var formattedDate = moment().format('YYYYMMDD');
Jika Anda tidak memerlukan solusi JS murni, Anda dapat menggunakan jQuery UI untuk melakukan pekerjaan seperti ini:
Saya biasanya tidak suka mengimpor terlalu banyak perpustakaan. Tapi jQuery UI sangat berguna, Anda mungkin akan menggunakannya di tempat lain di proyek Anda.
Kunjungi http://api.jqueryui.com/datepicker/ untuk contoh lebih lanjut
sumber
Ini adalah satu baris kode yang dapat Anda gunakan untuk membuat
YYYY-MM-DD
string tanggal hari ini.sumber
toISOString()
akan memberikan 2015-12-31T22: 00: 00 GMT +0 (dua jam sebelumnya).sumber
new Date('Sun Mar 31 2019 00:00:00.000').toLocaleString('en-us', {year: 'numeric', month: '2-digit', day: '2-digit'}).replace(/(\d+)\/(\d+)\/(\d+)/, '$3-$1-$2');
Selain jawaban oo saya ingin merekomendasikan memisahkan operasi logika dari kembali dan menempatkan mereka sebagai variabel dalam variabel sebagai gantinya.
Juga, gunakan
concat()
untuk memastikan gabungan variabel yang amansumber
("00" + (this.getDate())).slice(-2)
untuk mendapatkan angka berdasarkan dua digit. Tidak ada pernyataan "jika" atau "?:", Dan lebih sedikit panggilan ke fungsi .getX (). Jika tidak sedikit lebih cepat, setidaknya lebih mudah dibaca.Saya tidak suka memodifikasi objek asli, dan saya pikir perkalian lebih jelas daripada string padding solusi yang diterima.
Fiddle: http://jsfiddle.net/gbdarren/Ew7Y4/
sumber
.replace('-', '')
untuk membuatnya menjawab pertanyaan OP), sedangkan Anda benar dengan pertanyaan asli OP dan itu tidak akan memerlukan langkah ekstra. Luar biasa!Solusi Plain JS (ES5) tanpa masalah lompatan tanggal yang mungkin disebabkan oleh pencetakan Date.toISOString () di UTC:
Ini sebagai tanggapan atas komentar @ weberste pada jawaban @Pierre Guilbert.
sumber
toISOString
mengembalikan beberapa tanda hubung berurutan?sumber
sumber
new Date()
membuat objek tanggal baru yang hanya membungkus nr. ms sejak 1970/01/01 00: 00: 00.000 UTC. KemudiantoISOString
dicetak di zona waktu lokal.Cara lain adalah menggunakan
toLocaleDateString
dengan lokal yang memiliki standar format tanggal big-endian , seperti Swedia, Lithuania, Hongaria, Korea Selatan, ...:Untuk menghapus pembatas (
-
) hanya masalah mengganti non-digit:Ini tidak memiliki potensi kesalahan yang bisa Anda dapatkan dengan format tanggal UTC: tanggal UTC mungkin satu hari libur dibandingkan dengan tanggal di zona waktu lokal.
sumber
Anda cukup menggunakan kode satu baris ini untuk mendapatkan tanggal dalam setahun
sumber
Versi sedikit disederhanakan untuk jawaban paling populer di utas ini https://stackoverflow.com/a/3067896/5437379 :
sumber
dateformat adalah paket yang sangat digunakan.
Cara Penggunaan:
Unduh dan instal
dateformat
dari NPM. Perlu dalam modul Anda:const dateFormat = require('dateformat');
dan kemudian format saja barang-barang Anda:
const myYYYYmmddDate = dateformat(new Date(), 'yyyy-mm-dd');
sumber
Orang ini di sini => http://blog.stevenlevithan.com/archives/date-time-format menulis
format()
fungsi untuk JavascriptDate
, sehingga dapat digunakan dengan format literal yang sudah dikenal.Jika Anda membutuhkan pemformatan Tanggal berfitur lengkap di Javascript aplikasi Anda, gunakan itu. Kalau tidak, jika yang ingin Anda lakukan adalah salah satu, maka gabungkan getYear (), getMonth (), getDay () mungkin paling mudah.
sumber
Bekerja dari jawaban @ oo, ini akan memberi Anda kembali string tanggal sesuai dengan string format. Anda dapat dengan mudah menambahkan regex tahun 2 digit untuk tahun & milidetik dan sejenisnya jika Anda membutuhkannya.
Saya tidak tahu seberapa efisien itu, terutama karena ia menggunakan banyak regex. Mungkin bisa menggunakan beberapa pekerjaan yang tidak saya kuasai js murni.
sumber
Kode ini diperbaiki untuk jawaban Pierre Guilbert:
(Ia bekerja bahkan setelah 10.000 tahun)
sumber
Tampaknya mootool menyediakan
Date().format()
: https://mootools.net/more/docs/1.6.0/Types/DateSaya tidak yakin apakah itu layak termasuk hanya untuk tugas khusus ini sekalipun.
sumber
Saya biasanya menggunakan kode di bawah ini ketika saya perlu melakukan ini.
Untuk menjelaskan, .slice (-2) memberi kita dua karakter terakhir dari string.
Jadi, apa pun yang terjadi, kita dapat menambahkan "0" pada hari atau bulan, dan hanya meminta dua terakhir karena mereka selalu dua yang kita inginkan.
Jadi jika MyDate.getMonth () mengembalikan 9, itu akan menjadi:
jadi menambahkan .slice (-2) pada yang memberi kita dua karakter terakhir yaitu:
Tetapi jika date.getMonth () mengembalikan 10, itu akan menjadi:
jadi menambahkan .slice (-2) memberi kita dua karakter terakhir, atau:
sumber
Jika menggunakan AngularJs (hingga 1,5) Anda dapat menggunakan filter tanggal :
sumber
Menjawab orang lain untuk Kesederhanaan & keterbacaan.
Juga, mengedit anggota kelas yang sudah ada sebelumnya dengan metode baru tidak dianjurkan:
sumber
Bagaimana dengan Day.js ?
Ini hanya 2KB, dan Anda juga bisa
dayjs().format('YYYY-MM-DD')
.https://github.com/iamkun/dayjs
sumber
Jika Anda tidak keberatan menyertakan perpustakaan tambahan (tapi kecil), Sugar.js menyediakan banyak fungsionalitas yang bagus untuk bekerja dengan tanggal dalam JavaScript. Untuk memformat tanggal, gunakan fungsi format :
sumber
sumber
kode tanggal untuk penyelamatan!
sumber
Gunakan padStart :
sumber
Berikut ini adalah pendekatan yang lebih umum yang memungkinkan komponen tanggal dan waktu dan dapat diurutkan secara identik sebagai angka atau string.
Berdasarkan urutan nomor format ISO Tanggal, konversikan ke zona waktu lokal dan hapus non-digit. yaitu:
Pemakaian
sumber
Javascript Asli:
sumber