Isu keserasian penyemak imbas dengan fungsi tarikh new Date() dalam kemahiran javascript_javascript

WBOY
Lepaskan: 2016-05-16 15:40:52
asal
1344 orang telah melayarinya

Bahasa yang sama, JavaScript, mempunyai isu keserasian bahasa dalam penyemak imbas yang berbeza Pada asasnya, ini disebabkan oleh fakta bahawa penyemak imbas yang berbeza menyokong piawaian dan pelaksanaan bahasa yang berbeza. Artikel ini akan mencipta objek Tarikh berdasarkan Tarikh baharu untuk menganalisis masalah ini.

1. Masalahnya ialah masa mula dan ruang masa tamat tidak dapat memindahkan nilai dengan betul

Dalam halaman tersebut, kami menggunakan komponen masa untuk membangunkan kotak pemilihan masa, tetapi mendapati ia tidak berfungsi dengan betul di bawah Firefox, tetapi ia berjalan seperti biasa di bawah Chrome. Apa masalahnya?

2. Analisis Masalah

Analisis keputusan mendapati bahawa masalah disebabkan oleh kod berikut:

var timestart = '2010-05-04';
var timeend = '2015-09-05';
var time1 = (timestart+' 00:00:00').toString();
var time2 = (timeend+' 23:59:59').toString();
timestart = new Date(time1);
timeend = new Date(time2);
Salin selepas log masuk

Masalahnya ialah pembina Date(time1) baharu tidak boleh menjana objek Date dengan betul, dan nilainya ialah NaN Strange, apakah masalahnya?

3. Prestasi pada pelbagai pelayar

Pelaksanaan di bawah IE:

Pelaksanaan di bawah Firefox:

Pelaksanaan di bawah Chrome:

Melalui analisis di atas, dapat diketahui bahawa skrip javascript ini boleh dilaksanakan dengan betul di bawah Chrome, tetapi ralat dilaporkan di bawah pelayar lain.

4. Pendekatan yang betul

Pendekatan yang betul disenaraikan di bawah:

 var time1 = (timestart+' 00:00:00').toString();
 var time2 = (timeend+' 23:59:59').toString();
 timestart = new Date(Date.parse(time1.replace(/-/g,"/"))).getTime();
 timeend = new Date(Date.parse(time2.replace(/-/g,"/"))).getTime();
Salin selepas log masuk

Perubahan utama ialah penukaran format tarikh lalai Rentetan tarikh berdasarkan format '/' disokong secara meluas oleh pelbagai pelayar Rentetan tarikh yang disambungkan dengan '-' hanya tersedia dalam Ia berfungsi dengan baik di bawah chrome.

5. Ringkasan mata pengetahuan

'2015-09-05' tidak boleh digunakan oleh pelbagai penyemak imbas untuk menjana objek tarikh dengan betul menggunakan Date(str) baharu. Penggunaan yang betul ialah '2015/09/06'.

Label berkaitan:
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan