Lorsque vous travaillez avec des dates en Javascript, il est crucial de comprendre les écarts potentiels qui peuvent survenir lors de la création de nouveaux objets Date à partir de représentations sous forme de chaîne. Les problèmes suivants peuvent survenir et des solutions sont fournies pour chacun :
1. Décalage d'un jour
Lors de la création d'un objet Date à l'aide d'une chaîne au format "Année-Mois-Jour", par exemple "2011-09-24", la date résultante peut être un jour férié . Cela est dû au comportement par défaut du constructeur Date, qui suppose un fuseau horaire UTC (temps universel coordonné) et interprète la valeur d'entrée comme étant l'heure locale.
Solution : Pour garantir la date correcte est renvoyée, la chaîne doit être convertie au format « Mois-Jour-Année », par exemple « 24-09-2011 », ou les tirets doivent être remplacés avec des barres obliques, par exemple "2011/09/24."
2. Résultats inattendus avec des traits d'union dans les chaînes de date
Les traits d'union utilisés comme séparateurs de date peuvent conduire à des résultats incohérents. Par exemple, la chaîne "2011-09-24" produira une date incorrecte si elle est convertie à l'aide du constructeur Date, tandis que la chaîne "2011/09/24" produira la date correcte.
Solution : Utilisez toujours des barres obliques ("/") comme séparateurs de date.
3. Problèmes avec les chaînes de date au format « AAAA-MM-JJThh:mm:ss »
Lors de la création d'un objet Date à partir d'une chaîne au format « 2011-09-24T00:00:00 », la date résultante peut à nouveau être un jour de congé. De plus, si la chaîne est convertie à l'aide du format de barre oblique, par exemple "2011/09/24T00:00:00", une erreur "Date invalide" peut se produire.
Solution : Pour analyser correctement ce type de chaîne de date, remplacez les traits d'union par des barres obliques et supprimez la partie heure, par exemple : "2011/09/24T00:00:00".replace(/-/g, '/').replace(/T. /, '').
4. Fonctionnalité supplémentaire avec plusieurs arguments pour le constructeur de date
Le constructeur de date prend en charge plusieurs arguments, ce qui peut être utile pour effectuer des calculs avancés. Par exemple, fournir uniquement une année et un mois, par exemple new Date(2011, 0), renverra le premier jour de ce mois. Alternativement, fournir une année et une valeur de jour négative, par exemple, new Date(2011, "02", -1), renverra le dernier jour du mois précédent.
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!