Bagaimana saya bisa mengkonversi string ke objek waktu tanggal dalam javascript dengan menentukan string format?
Saya mencari sesuatu seperti:
var dateTime = convertToDateTime("23.11.2009 12:34:56", "dd.MM.yyyy HH:mm:ss");
javascript
datetime
type-conversion
Serhat Ozgel
sumber
sumber
Jawaban:
Saya pikir ini dapat membantu Anda: http://www.mattkruse.com/javascript/date/
Ada
getDateFromFormat()
fungsi yang bisa Anda sesuaikan sedikit untuk menyelesaikan masalah Anda.Pembaruan: ada versi terbaru dari sampel yang tersedia di javascripttoolbox.com
sumber
TypeError: Object Date has no method 'getDateFromFormat'
Gunakan jika string Anda kompatibel dengan . Jika format Anda tidak kompatibel (saya pikir itu adalah), Anda harus mengurai string sendiri (harus mudah dengan ekspresi reguler) dan membuat objek Tanggal baru dengan nilai eksplisit untuk tahun, bulan, tanggal, jam, menit dan detik.
new Date(dateString)
Date.parse()
sumber
@Christoph Menyebutkan menggunakan regex untuk mengatasi masalah tersebut. Inilah yang saya gunakan:
Ini sama sekali tidak cerdas, cukup mengkonfigurasi regex dan
new Date(blah)
sesuai dengan kebutuhan Anda.Sunting: Mungkin sedikit lebih bisa dipahami dalam ES6 menggunakan penghancuran:
Tetapi dalam semua kejujuran hari ini saya meraih sesuatu seperti Momen
sumber
/g
bendera, hanya untuk mengaturlastIndex
ke0
sesudahnya? Hanya saja, jangan gunakan pertandingan global./g
adalah copy / paste ceroboh dari proyek yang ada.lastindex
telah ditambahkan oleh editor (untuk memerangi\g
kurasa?). Saya akan menghapusnya sekarang. Terima kasih telah menunjukkannya.Tidak ada rutinitas format tanggal / waktu yang canggih di JavaScript.
Anda harus menggunakan perpustakaan eksternal untuk output tanggal yang diformat, "Format Tanggal JavaScript" dari Flagrant Badassery terlihat sangat menjanjikan.
Untuk konversi input, beberapa saran telah dibuat. :)
sumber
Lihat Moment.js . Ini adalah perpustakaan modern dan kuat yang menggantikan fungsi Tanggal menyedihkan JavaScript (atau kekurangan fungsi).
sumber
Hanya untuk jawaban yang diperbarui di sini, ada js lib yang bagus di http://www.datejs.com/
sumber
sumber
Pustaka eksternal adalah kerja keras untuk mengurai satu atau dua tanggal, jadi saya membuat fungsi saya sendiri menggunakan solusi Oli dan Christoph . Di sini, di Eropa Tengah, kami jarang menggunakan aything selain format OP, jadi ini sudah cukup untuk aplikasi sederhana yang digunakan di sini.
sumber
Date.parse()
cukup cerdas tetapi saya tidak dapat menjamin bahwa format akan diurai dengan benar.Jika tidak, Anda harus menemukan sesuatu untuk menjembatani keduanya. Contoh Anda cukup sederhana (menjadi angka murni) sehingga sentuhan REGEX (atau bahkan
string.split()
- mungkin lebih cepat) dipasangkan dengan beberapaparseInt()
akan memungkinkan Anda untuk dengan cepat membuat kencan.sumber
sumber
Hanya untuk memberikan 5 sen saya.
Format tanggal saya adalah dd.mm.yyyy (format UK) dan tidak ada contoh di atas yang berfungsi untuk saya. Semua parser mempertimbangkan mm sebagai hari dan dd sebagai bulan.
Saya telah menemukan perpustakaan ini: http://joey.mazzarelli.com/2008/11/25/easy-date-parsing-with-javascript/ dan berhasil, karena Anda dapat mengatakan urutan bidang seperti ini:
Saya harap itu membantu seseorang.
sumber
Moment.js akan menangani ini:
sumber
Anda dapat menggunakan perpustakaan moment.js untuk ini. Saya hanya menggunakan untuk mendapatkan keluaran spesifik waktu tetapi Anda dapat memilih format apa yang ingin Anda pilih.
Referensi:
1. perpustakaan sesaat: https://momentjs.com/
2. fungsi spesifik waktu dan tanggal: https://timestamp.online/article/how-to-convert-timestamp-to-datetime-in-javascript
dan Anda dapat memanggil metode ini seperti:
Saya harap ini membantu. Nikmati pengkodean.
sumber
Untuk sepenuhnya memenuhi string konversi Date.parse ke format dd-mm-YYYY seperti yang ditentukan dalam RFC822, jika Anda menggunakan parse yyyy-mm-dd dapat melakukan kesalahan.
sumber
sumber