"Safari Date Conundrum: Invalid Date Blues and a One-Liner Fix"
Apabila cuba mencipta objek Date baharu dalam Safari menggunakan rentetan dalam format MM-DD-YYYY, pengguna mungkin menghadapi ralat "tarikh tidak sah". Walaupun penyemak imbas lain seperti Chrome dan Firefox mengendalikan format ini dengan mudah, Safari menimbulkan cabaran.
Setelah penyiasatan lanjut, didapati bahawa pematuhan ketat Safari kepada format tarikh ISO 8601 adalah punca kepada isu ini. Format ini memerlukan tarikh dalam format YYYY-MM-DD, yang tidak serasi dengan rentetan MM-DD-YYYY yang digunakan.
Percubaan untuk menyelesaikan isu dengan menghuraikan rentetan secara manual menggunakan pemisah yang berbeza ( cth., //, -/) terbukti sia-sia. Safari tetap bertegas dalam ketegasannya pada format ISO 8601.
Penyelesaian Satu Pelapik
Bagi mereka yang mencari penyelesaian yang cepat dan berkesan tanpa menggunakan perpustakaan luaran, a satu pelapik mudah boleh memintas had penghuraian tarikh Safari:
console.log (new Date('2011-04-12'.replace(/-/g, "/")));
Dalam baris ini, kaedah replace() digunakan untuk menukar rentetan MM-DD-YYYY kepada format YYYY-MM-DD yang Safari mengenali. Dengan menggantikan semua tanda sempang (-) dengan garis miring ke hadapan (/), rentetan tarikh menjadi mematuhi piawaian ISO 8601.
Penyelesaian ringkas ini membolehkan pengguna mencipta objek Date baharu menggunakan format bukan standard sambil mengekalkan keserasian dengan Safari.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'Tarikh Tidak Sah' Semasa Menukar Rentetan MM-DD-YYYY kepada Objek Tarikh dalam Safari?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!