Rumah >hujung hadapan web >tutorial js >Mengapa Pembina Tarikh IE Berbeza daripada Pengendalian Tarikh Chrome dan Firefox?

Mengapa Pembina Tarikh IE Berbeza daripada Pengendalian Tarikh Chrome dan Firefox?

Linda Hamilton
Linda Hamiltonasal
2024-10-20 13:35:30731semak imbas

Why Does IE Date Constructor Differ from Chrome and Firefox Date Handling?

Isu Pembina Tarikh IE: NaN lwn. Fungsi dalam Pelayar Lain

Dalam projek yang melibatkan pembangunan kalendar JavaScript, percanggahan muncul dalam pengendalian tarikh antara Internet Explorer (IE) dan penyemak imbas seperti Firefox dan Chrome. Khususnya, fungsi tarikh IE menghasilkan nilai NaN (Bukan Nombor), manakala ia berfungsi dengan betul dalam penyemak imbas lain.

Setelah disiasat, menjadi jelas bahawa punca utama adalah berkaitan dengan format tarikh yang digunakan. Fungsi yang dimaksudkan, buildWeek(), bertujuan untuk menjana tarikh pengepala untuk minggu kalendar berdasarkan tarikh Isnin yang disediakan dalam format 'm, d, Y', contohnya, "02, 01, 2010". Walau bagaimanapun, dalam IE, format ini tidak diiktiraf dengan betul, membawa kepada isu NaN.

Untuk menyelesaikan percanggahan ini, pendekatan berbeza telah digunakan. Daripada bergantung pada format yang diberikan, rentetan tarikh dibahagikan kepada komponennya (tarikh dan masa) menggunakan split(" "). Selepas itu, komponen tarikh dipecahkan lagi kepada bahagian konstituennya (tahun, bulan, hari) menggunakan split("-"), dan komponen masa dibahagikan kepada bahagiannya (jam, minit, saat) menggunakan split(":") .

Satu kejadian Tarikh kemudiannya dibina menggunakan nilai yang dihuraikan ini. Kaedah ini terbukti serasi dengan semua penyemak imbas, memastikan pengendalian tarikh yang konsisten merentas IE, Firefox dan Chrome.

var dateStr = "2011-08-03 09:15:11"; //returned from mysql timestamp/datetime field
var a = dateStr.split(" ");
var d = a[0].split("-");
var t = a[1].split(":");
var date = new Date(d[0], (d[1] - 1), d[2], t[0], t[1], t[2]);

Dengan menggunakan pendekatan ini, ralat NaN dalam IE berjaya dihapuskan, mencapai pengendalian tarikh yang konsisten merentas pelayar yang berbeza.

Atas ialah kandungan terperinci Mengapa Pembina Tarikh IE Berbeza daripada Pengendalian Tarikh Chrome dan Firefox?. 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