Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimanakah Saya Boleh Menukar Rentetan dd-mm-yyyy kepada Objek Tarikh JavaScript?

Bagaimanakah Saya Boleh Menukar Rentetan dd-mm-yyyy kepada Objek Tarikh JavaScript?

DDD
DDDasal
2024-11-19 22:43:02746semak imbas

How Can I Convert a dd-mm-yyyy String to a JavaScript Date Object?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn