Rumah >hujung hadapan web >tutorial js >Mengapa Safari Bergelut dengan Tarikh dalam Format \'2010-11-29\'?
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!