Keserasian merentas pelayar bagi Penciptaan Objek Tarikh
Apabila menghuraikan rentetan tarikh ke objek Tarikh menggunakan JavaScript, variasi timbul antara penyemak imbas yang berbeza seperti sebagai Chrome dan Firefox. Percanggahan ini menjadi jelas apabila menggunakan pembina Date() baharu untuk menghuraikan rentetan tarikh dalam format 'YYYY-MM-DDTHH:MM:SS'.
Dalam coretan kod yang disediakan:
<code class="js">var date = new Date('2013-02-27T17:00:00');</code>
Firefox mentafsir rentetan input sebagai waktu tempatan dan menambah zon waktu setempat mengimbangi (GMT 0700). Ini menghasilkan tarikh yang satu hari lebih awal daripada waktu UTC yang dimaksudkan, menghasilkan:
Wed Feb 27 2013 17:00:00 GMT+0700 (SE Asia Standard Time)
Sebaliknya, Chrome menghuraikan rentetan dengan betul sebagai masa UTC dan mengembalikan hasil yang dijangkakan:
Thu Feb 28 2013 00:00:00 GMT+0700 (SE Asia Standard Time)
Penyelesaian
Untuk memastikan gelagat yang konsisten merentas penyemak imbas, tambahkan 'Z' pada rentetan tarikh untuk menunjukkan waktu UTC secara eksplisit. Format yang betul untuk UTC ialah 'YYYY-MM-DDTHH:MM:SSZ'.
<code class="js">var date = new Date('2013-02-27T17:00:00Z');</code>
Pengubahsuaian ini akan menyelesaikan percanggahan dan menghasilkan hasil yang sama dalam Chrome dan Firefox, mencerminkan masa UTC asal :
Thu Feb 28 2013 00:00:00 GMT+0700 (SE Asia Standard Time)
Atas ialah kandungan terperinci Mengapakah `Tarikh baharu(\'YYYY-MM-DDTHH:MM:SS\')` Menghasilkan Keputusan Berbeza dalam Chrome dan Firefox?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!