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!