Rumah >hujung hadapan web >tutorial js >Mengapakah `New Date()` berkelakuan berbeza dalam Chrome dan Firefox apabila menukar rentetan masa UTC?

Mengapakah `New Date()` berkelakuan berbeza dalam Chrome dan Firefox apabila menukar rentetan masa UTC?

Linda Hamilton
Linda Hamiltonasal
2024-10-26 02:51:02641semak imbas

Why does `new Date()` behave differently in Chrome and Firefox when converting UTC time strings?

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:

  • Firefox: Mengembalikan tarikh satu hari di belakang waktu UTC yang dijangkakan.
  • Chrome: Mengembalikan masa UTC yang betul.

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:

  • YYYY-MM-DD mewakili tahun, bulan dan hari.
  • HH:mm:ss mewakili jam, minit dan saat.
  • Z mewakili penunjuk Waktu Zulu.

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!

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