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

Linda Hamilton
Lepaskan: 2024-10-26 02:51:02
asal
544 orang telah melayarinya

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
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!