Maison  >  Article  >  interface Web  >  Problèmes de compatibilité rencontrés par les objets Date en JavaScript entre Safari et IOS

Problèmes de compatibilité rencontrés par les objets Date en JavaScript entre Safari et IOS

php是最好的语言
php是最好的语言original
2018-07-28 13:46:191727parcourir

Récemment, l'éditeur travaille sur une fonction de réservation de salle de conférence. Cette fonction revient à sélectionner des places lors de l'achat de billets de cinéma. Vous pouvez voir à quelle période la salle de conférence est libre, quel équipement est disponible, etc. Puisque je crée une application, l'application doit être compatible avec Android et IOS. J'ai utilisé Google Chrome pour le développement initial et le débogage. Je n'ai pas utilisé d'autres navigateurs pour les tests. Qui savait qu'il y aurait un gros problème dans le système. fin ? des dangers cachés. Ci-dessous mon interface.

Problèmes de compatibilité rencontrés par les objets Date en JavaScript entre Safari et IOS

Question 1 :

Cette interface utilise beaucoup de calculs de type date Lorsque nous utilisons JavaScript pour instancier un objet date, nous pouvons l'utiliser comme ceci. :

var date =new Date();

Le code ci-dessus permet d'obtenir la date actuelle. Ce code peut être exécuté dans les navigateurs Firefox, Chrome et Safari. Mais si je veux obtenir la date basée sur une chaîne, le problème vient. Regardez le code ci-dessous.

var date =new Date("2016-05-31 08:00");

Ce code permet d'obtenir la date spécifiée dans les caractères. Il peut être exécuté dans Firefox et Chrome, mais lorsqu'il est placé dans Safari, une erreur sera signalée. L'erreur est NaN, ce qui signifie Non. un nombre. À cause de cette erreur, les téléphones Apple ne pouvaient pas exécuter normalement l'interface que j'avais développée. J'étais presque déprimé à l'époque. J'ai écrit 300 lignes de js, qui étaient presque toutes liées au temps, soit en prenant des valeurs, soit en attribuant des valeurs. calcul. Maintenant, IOS n'est pas pris en charge. . . . . . .

J'ai cherché sur Internet et j'ai écrit le code comme ceci :

var date =new Date("2016/05/31 08:00");

De cette façon, Android et IOS peuvent le partager, j'ai écrit une fonction et je l'ai remplacée !

  1. function GetDateDiff(startDiffTime, endDiffTime) {

  2. /Convertir le format d'heure xxxx-xx-xx au format xxxx/xx/xx

  3. startTime = startDiffTime .replace(/ -/g, "/");
  4. endTime = endDiffTime.replace(/-/g, "/");
  5. };

Question 2 :

Un nouveau calendrier est ajouté dans le Contrôle HTML5, si le type du champ est "datetime-local", s'il s'agit de Chrome, le format d'affichage de la date du champ est 2016/05/30 08:00, s'il s'agit de Safari, le format d'affichage de la date est : 2016-05-31T08 :00 , lorsque nous utilisons JQuery pour obtenir et attribuer des valeurs, nous devons utiliser cette méthode pour attribuer des valeurs : Si l'identifiant de ce contrôle de calendrier est timeDate, le code est le suivant :

$("#timeDate').val("2016-05-30T08:30");

Utilisez $( "#timeDate') .val("2016/05/30 08:30"); signalera une erreur

Articles associés :

JavaScript nouvelle date et autres fonctions de date rencontrées dans Safari. Pièges

Objet Date en JavaScript

Vidéos associées :

Objet intégré JS-Objet date Date. -Tutoriel vidéo de base d'entrée JavaScript

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
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