Memahami Percanggahan dalam Gelagat Date() baharu antara Chrome dan Firefox
Apabila menukar rentetan tarikh kepada objek Tarikh menggunakan Date() baharu ), perbezaan halus timbul antara Chrome dan Firefox. Tingkah laku ini boleh mengelirukan, terutamanya apabila bekerja dengan rentetan masa UTC.
Kod yang disediakan dalam soalan, var date = new Date('2013-02-27T17:00:00');, mencipta Tarikh objek daripada rentetan tarikh dalam format UTC. Walau bagaimanapun, keputusannya berbeza antara kedua-dua penyemak imbas:
Punca Percanggahan
Perbezaan berpunca daripada tafsiran rentetan tarikh. Firefox mentafsir rentetan sebagai waktu tempatan dalam zon waktu penyemak imbas, manakala Chrome mentafsirkannya sebagai UTC. Akibatnya, Firefox menambah zon waktu penyemak imbas mengimbangi tarikh, menyebabkan ia dipaparkan sehari selepas UTC.
Penyelesaian
Untuk menyelesaikan percanggahan ini dan dapatkan masa UTC yang betul dalam kedua-dua penyemak imbas, adalah penting untuk mematuhi format yang betul untuk rentetan tarikh UTC. Format yang betul ialah:
YYYY-MM-DDTHH:mm:ssZ
di mana:
Dengan menambahkan penunjuk "Z" pada penghujung rentetan tarikh, penyemak imbas akan mentafsir dengan betul ia sebagai masa UTC.
Kod Kemas Kini:
<code class="javascript">var date = new Date('2013-02-27T17:00:00Z'); // Appends 'Z' to indicate UTC alert(date);</code>
Kod yang dikemas kini ini kini akan menghasilkan objek tarikh UTC yang sama dalam kedua-dua Firefox dan Chrome.
Atas ialah kandungan terperinci Mengapakah `New Date()` berkelakuan berbeza dalam Chrome dan Firefox apabila menukar rentetan masa UTC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!