Apa yang Menyebabkan Ralat NaN dalam Internet Explorer Apabila Menggunakan Pembina Tarikh JavaScript?

Barbara Streisand
Lepaskan: 2024-10-20 13:32:29
asal
460 orang telah melayarinya

What Causes NaN Errors in Internet Explorer When Using JavaScript's Date Constructor?

Date Constructor Malfunctions in IE: A Cross-Browser Comparison

Dalam bidang pembangunan web, JavaScript's Date constructor telah terbukti sebagai sekutu yang boleh dipercayai kepada pembangun yang ingin memanipulasi tarikh. Walau bagaimanapun, fenomena ingin tahu telah diperhatikan apabila menggunakan pembina ini merentasi pelayar utama. Walaupun Firefox dan Chrome dengan gembira menerima kefungsian Date, Internet Explorer telah diketahui tersandung, mengembalikan NaN (Bukan-Nombor) untuk operasi tarikh tertentu.

Untuk merungkai enigma ini, mari kita mendalami isu khusus yang diperhatikan oleh pemaju membina kalendar. Pembinaan Tarikh mereka daripada rentetan tarikh berformat PHP ('m, d, Y') berfungsi dengan sempurna dalam Firefox dan Chrome, tetapi IE berkeras untuk membuat NaN tantrum.

Masalah Pembinaan Tarikh

<code class="javascript">function buildWeek(dateText){
    var headerDates='';
    var newDate = new Date(dateText);

    for(var d=0;d<7;d++){
        headerDates += '<th>' + newDate + '</th>';
        newDate.setDate(newDate.getDate()+1);
    }                       

    jQuery('div#headerDates').html('<table><tr>'+headerDates+'</tr></table>');
}</code>
Salin selepas log masuk

Punca masalah terletak pada format tarikh. Walaupun IE boleh menghuraikan tarikh dalam format asalnya ('YYYY-MM-DD'), ia bergelut apabila berhadapan dengan format 'm, d, Y' yang digunakan dalam kod ini.

Penyelesaian: Menyeragamkan Format Tarikh

Untuk memastikan keserasian merentas penyemak imbas, adalah penting untuk menyeragamkan format tarikh yang digunakan dalam pembinaan Tarikh. Pendekatan yang disyorkan ialah menukar rentetan tarikh kepada format yang mudah difahami oleh IE. Satu pilihan yang mudah ialah memanfaatkan kaedah split() untuk membedah rentetan tarikh dan kemudian menghantar komponen individu ke dalam pembina Tarikh.

Sebagai contoh, dengan mengandaikan medan datetime/timestamp MySQL mengembalikan rentetan seperti "2011- 08-03 09:15:11", coretan kod berikut akan menormalkan format untuk keserasian IE:

<code class="javascript">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]);</code>
Salin selepas log masuk

Dengan menggunakan pendekatan ini, anda boleh memastikan bahawa operasi Tarikh anda akan dimainkan dengan baik merentas semua pelayar utama , menghapuskan ralat NaN yang tidak dapat dijelaskan yang boleh mendatangkan malapetaka pada kod anda.

Atas ialah kandungan terperinci Apa yang Menyebabkan Ralat NaN dalam Internet Explorer Apabila Menggunakan Pembina Tarikh JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
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!