Rumah > Artikel > hujung hadapan web > Bagaimanakah Saya Boleh Menukar Rentetan dd-mm-yyyy kepada Objek Tarikh JavaScript?
Tukar Rentetan dd-mm-yyyy kepada Tarikh
Ketidakupayaan untuk menghuraikan rentetan dd-mm-yyyy ke dalam objek tarikh yang sah menggunakan Pembina Tarikh JavaScript terutamanya disebabkan oleh kehadiran simbol '-', yang tidak dikenali oleh pembina. Untuk mengatasinya, pendekatan alternatif diperlukan.
Penyelesaian: Pisahkan pada "-"
Satu penyelesaian ialah membelah rentetan kepada komponen individunya menggunakan '-' simbol sebagai pembatas dan kemudian buat objek Tarikh baharu menggunakan nilai hari, bulan dan tahun:
var from = $("#datepicker").val().split("-") var f = new Date(from[2], from[1] - 1, from[0])
Penyelesaian: Gunakan Regex
Ekspresi biasa juga boleh digunakan untuk mengekstrak komponen tarikh individu dan membina rentetan tarikh yang sah:
var date = new Date("15-05-2018".replace( /(\d{2})-(\d{2})-(\d{4})/, "//"))
Cadangan: Pisah pada "-"
Sementara kedua-dua pendekatan adalah sah, Kaedah "split on -" boleh dikatakan lebih khusus dan cekap untuk tugasan tertentu ini, kerana ia menyasarkan secara langsung format rentetan input yang diketahui tanpa bergantung pada padanan regex yang berpotensi lebih kompleks.
Kebolehgunaan semula
Jika penukaran ini dilakukan beberapa kali dalam kod, adalah dinasihatkan untuk merangkumnya dalam fungsi untuk kebolehgunaan semula dan kebolehselenggaraan:
function toDate(dateStr) { var parts = dateStr.split("-") return new Date(parts[2], parts[1] - 1, parts[0]) }
Menggunakan fungsi:
var f = toDate($("#datepicker").val()) var t = toDate($("#datepickertwo").val())
JavaScript Moden
Untuk persekitaran JavaScript moden, penstrukturan tatasusunan boleh memudahkan kod:
const toDate = (dateStr) => { const [day, month, year] = dateStr.split("-") return new Date(year, month - 1, day) }
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Rentetan dd-mm-yyyy kepada Objek Tarikh JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!