Maison > interface Web > js tutoriel > le corps du texte

Problèmes de compatibilité du navigateur avec la fonction de date new Date() dans les compétences javascript_javascript

WBOY
Libérer: 2016-05-16 15:40:52
original
1347 Les gens l'ont consulté

Le même langage, JavaScript, présente des problèmes de compatibilité linguistique dans différents navigateurs. Cela est essentiellement dû au fait que différents navigateurs prennent en charge différentes normes et implémentations linguistiques. Cet article créera un objet Date basé sur la nouvelle Date pour analyser ce problème.

1. Le problème est que l'espace horaire de début et l'espace horaire de fin ne peuvent pas transférer les valeurs correctement

Dans la page, nous avons utilisé un composant temporel pour développer la boîte de sélection de l'heure, mais nous avons constaté qu'elle ne fonctionnait pas correctement sous Firefox, mais qu'elle fonctionnait normalement sous Chrome. Quel est le problème ?

2. Analyse du problème

L'analyse des résultats a révélé que le problème est causé par le code suivant :

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);
Copier après la connexion

Le problème est que le nouveau constructeur Date(time1) ne peut pas générer correctement un objet Date, et sa valeur est NaN Étrange, quel est le problème ?

3. Performances sur différents navigateurs

Exécution sous IE :

Exécution sous Firefox :

Exécution sous Chrome :

Grâce à l'analyse ci-dessus, on peut savoir que ce script javascript peut être exécuté correctement sous Chrome, mais une erreur est signalée sous d'autres navigateurs.

4. Approche correcte

L'approche correcte est répertoriée ci-dessous :

 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();
Copier après la connexion

Le principal changement est la conversion du format de date par défaut. La chaîne de date basée sur le format '/' est largement supportée par divers navigateurs. La chaîne de date connectée par '-' n'est disponible que dans Cela fonctionne bien sous chrome.

5.Résumé des points de connaissances

'2015-09-05' ne peut pas être utilisé par divers navigateurs pour générer correctement des objets date à l'aide de new Date(str). L'utilisation correcte est « 06/09/2015 ».

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal