Rumah >hujung hadapan web >tutorial js >Ketidakkonsistenan Penghuraian Tarikh Safari: Mengapa Ia Mentafsir Tarikh Secara Berbeza?
Safari Mentafsir Tarikh Secara Berbeza: Memahami Isu
Tarikh ialah elemen asas dalam pengaturcaraan dan bekerja dengannya secara lancar merentas penyemak imbas adalah penting. Walau bagaimanapun, apabila menggunakan tarikh dalam Safari, anda mungkin menghadapi ketidakkonsistenan yang boleh membawa kepada ralat yang membingungkan.
Satu senario sedemikian timbul apabila menggunakan pembina Date() baharu untuk mencipta objek tarikh daripada rentetan. Contohnya, dalam coretan kod berikut:
<code class="javascript">alert(new Date('2010-11-29'));</code>
Semasa penyemak imbas Chrome dan Firefox mengendalikan rentetan ini dengan betul, Safari melemparkan ralat "tarikh tidak sah". Tingkah laku pelik ini telah menyebabkan ramai pembangun menggaru kepala mereka.
Menyingkap Percanggahan Penghuraian Tarikh
Untuk mendedahkan punca isu ini, mari kita periksa variasi dalam rentetan tarikh menghurai. Anda mungkin telah cuba menukar komponen hari dan bulan dalam rentetan, seperti:
<code class="javascript">alert(new Date('11-29-2010')); //doesn't work in Safari alert(new Date('29-11-2010')); //doesn't work in Safari alert(new Date('2010-29-11')); //doesn't work in Safari</code>
Malangnya, pelarasan ini juga tidak menghasilkan kejayaan dalam Safari.
Penyelesaian untuk Hindari Salah Tafsiran Safari
Semasa memfaktorkan semula kod anda untuk melaksanakan perpustakaan tarikh alternatif mungkin terbukti menarik, penyelesaian yang lebih mudah wujud. Pertimbangkan satu pelapik berikut:
<code class="javascript">console.log (new Date('2011-04-12'.replace(/-/g, "/")));</code>
Dalam coretan ini, sempang bermasalah dalam rentetan tarikh digantikan dengan garis miring ke hadapan. Dengan menggunakan penggantian ini, Safari mentafsir rentetan dengan betul, menyelesaikan ralat "tarikh tidak sah".
Pendekatan ini menawarkan penyelesaian ringkas dan bertoleransi pelayar, menghapuskan keperluan untuk penyepaduan perpustakaan yang kompleks atau operasi regex yang tidak cekap.
Atas ialah kandungan terperinci Ketidakkonsistenan Penghuraian Tarikh Safari: Mengapa Ia Mentafsir Tarikh Secara Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!