Rumah  >  Artikel  >  hujung hadapan web  >  Mengapa Safari Bergelut dengan Tarikh dalam Format \'2010-11-29\'?

Mengapa Safari Bergelut dengan Tarikh dalam Format \'2010-11-29\'?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-21 17:53:32264semak imbas

Why Does Safari Struggle with Dates in '2010-11-29' Format?

Safari's Date Parsing Quirks

Mengapa Safari membuang ralat "tarikh tidak sah" apabila menemui tarikh dalam format seperti '2010-11-29 ', manakala penyemak imbas lain mengendalikan tarikh ini tanpa masalah? Tingkah laku yang tidak konsisten ini boleh mengecewakan pembangun web.

Punca masalahnya terletak pada tafsiran Safari tentang sempang (-) dalam rentetan tarikh. Walaupun kebanyakan penyemak imbas mengiktiraf sempang sebagai pemisah tarikh, Safari tersilap menganggapnya sebagai sebahagian daripada tarikh itu sendiri, yang membawa kepada pengiraan tarikh yang salah.

Untuk menggambarkan, cuba percubaan menghuraikan rentetan berikut:

alert(new Date('2010-29-11')); // Doesn't work in Safari
alert(new Date('29-11-2010')); // Doesn't work in Safari
alert(new Date('11-29-2010')); // Doesn't work in Safari

Seperti yang anda lihat, Safari gagal menghuraikan tarikh ini dengan betul, tanpa mengira susunan komponen.

Semasa menggunakan pustaka berasingan seperti Moment.js atau date-fns mungkin menjadi pilihan untuk mengurangkan isu ini, penyelesaian yang lebih mudah tersedia. Dengan hanya menggantikan sempang dengan garis miring (/), Safari boleh mentafsir rentetan tarikh dengan betul:

console.log(new Date('2011-04-12'.replace(/-/g, "/")));

Pembetulan satu baris ini memastikan Safari boleh menghuraikan tarikh dalam format yang dijangkakan, membenarkan aplikasi web memaparkan dan memanipulasi tarikh secara konsisten merentas berbilang penyemak imbas.

Atas ialah kandungan terperinci Mengapa Safari Bergelut dengan Tarikh dalam Format \'2010-11-29\'?. 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