Rumah  >  Artikel  >  hujung hadapan web  >  format tarikh javascript menyebabkan ralat

format tarikh javascript menyebabkan ralat

WBOY
WBOYasal
2023-05-09 17:18:37816semak imbas

Kata Pengantar

Dalam pembangunan web, kita selalunya perlu menggunakan tarikh. Contohnya: masa pendaftaran pengguna, masa penerbitan artikel, dsb. JavaScript ialah bahasa pengaturcaraan yang sangat biasa digunakan, jadi kami sering menggunakan fungsi tarikh Javascript untuk mengendalikan tarikh, seperti: getDate(), getMonth(), getFullYear(), dsb. Walau bagaimanapun, dalam aplikasi sebenar, kami mungkin menghadapi banyak masalah pemformatan tarikh, terutamanya apabila ia berkaitan dengan format masa dan persekitaran tempat di kawasan yang berbeza. Dalam artikel ini, kami akan menerangkan masalah format tarikh JavaScript yang menyebabkan ralat dan memberikan penyelesaian.

Soalan

Objek tarikh dalam JavaScript boleh dibuat seketika menggunakan Date() baharu. Walau bagaimanapun, apabila bekerja dengan tarikh, masalah boleh timbul jika format yang betul tidak digunakan. Mari lihat contoh berikut:

var date = new Date('2022-06-10');
console.log(date);

Dalam kebanyakan kes, contoh ini baik kerana format tarikh '-' diasingkan: tahun-bulan-hari. Tetapi dalam beberapa kes, jika format tarikh menggunakan pembatas lain, ia boleh menyebabkan ralat. Sebagai contoh, kod di atas akan menyebabkan ralat jika pembatas merah '/' dan '.' digunakan. Selain itu, susunan tahun, bulan dan hari mungkin berbeza di sesetengah wilayah. Contohnya, di China, format tarikh yang kami gunakan ialah tahun-bulan-hari, tetapi di Amerika Syarikat, format tarikh ialah bulan/hari/tahun.

Penyelesaian

  1. Nyatakan format tarikh

Untuk mengelakkan masalah format tarikh dalam JavaScript menyebabkan ralat, anda perlu menentukan format tarikh. Kita boleh menggunakan kaedah format() objek Intl.DateTimeFormat yang disediakan oleh JavaScript untuk memformat:

var date = new Date('2022-06-10');
var formatter = new Intl.DateTimeFormat('en-US', { 
  year: 'numeric',
  month: 'short',
  day: 'numeric'
});
console.log(formatter.format(date)); // Jun 10, 2022

Menggunakan objek Intl.DateTimeFormat, format tarikh boleh ditentukan berdasarkan rantau dan tempat. Dalam contoh ini, kami menggunakan 'en-US', tempat Amerika Syarikat, untuk menentukan format tahun, bulan dan hari tarikh.

  1. Gunakan perpustakaan pihak ketiga

Jika anda merasakan objek Intl.DateTimeFormat tidak cukup berkuasa, anda boleh memilih untuk menggunakan beberapa perpustakaan pihak ketiga, seperti : moment.js, tarikh- fns dsb. Perpustakaan ini bukan sahaja menyediakan tetapan format tarikh yang lebih kaya, tetapi juga menyediakan beberapa fungsi yang mudah untuk memanipulasi tarikh, seperti tambah(), tolak(), format(), dsb.

  1. Gunakan ungkapan biasa

Jika anda hanya perlu mengesahkan format tarikh, anda boleh menggunakan ungkapan biasa. Sebagai contoh, kita boleh menggunakan ungkapan biasa untuk mengesahkan format 'YYYY-MM-DD':

function isValidDate(dateString) {
  var regex = /^d{4}-d{2}-d{2}$/;
  return regex.test(dateString);
}

Dalam fungsi ini, kami menggunakan /^d{4}-d{2}-d{2 }$/ Ungkapan biasa, di mana '^' bermaksud padanan mesti bermula dari permulaan rentetan, 'd' bermaksud nombor yang sepadan, 'd{4}' bermaksud memadankan 4 nombor, '-' bermaksud memadankan pembatas '-' . Fungsi ini mengembalikan benar atau salah, bergantung pada sama ada rentetan mematuhi format 'YYYY-MM-DD'.

Kesimpulan

Dalam JavaScript, pemprosesan format tarikh merupakan masalah yang sangat menyusahkan Kita perlu menggunakan format tarikh yang berbeza dalam persekitaran bahasa yang berbeza, kawasan yang berbeza dan senario aplikasi yang berbeza. Oleh itu, semasa memproses tarikh, kita perlu memilih kaedah pemprosesan yang paling sesuai mengikut situasi khusus untuk mengelakkan ralat yang disebabkan oleh format tarikh JavaScript.

Atas ialah kandungan terperinci format tarikh javascript menyebabkan ralat. 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