Dates au format ISO 8601 avec décalage de fuseau horaire en JavaScript
En JavaScript, la construction de dates au format ISO 8601 avec décalage de fuseau horaire peut être difficile en raison de décalages horaires négatifs potentiels. Cet article résout ce problème et propose une solution.
Comprendre le format
Le format ISO 8601 spécifie les dates comme suit : AAAA-MM-JJThh:mm:ss± hh:mm. Par exemple, 2002-10-10T12:00:00-05:00 représente midi le 10 octobre 2002, à l'heure d'été du Centre (cinq heures de retard sur UTC).
Recherche de l'heure locale et de l'UTC. Offset
Pour construire la chaîne ISO 8601, nous devons d'abord obtenir l'heure locale en utilisant new Date() et calculer l'heure locale Décalage UTC à l'aide de getTimezoneOffset(). Le décalage est obtenu en minutes, nous le divisons donc par 60 pour obtenir le nombre d'heures.
Gestion des décalages horaires négatifs
La fonction getTimezoneOffset() peut renvoyer un résultat négatif valeurs. Dans de tels cas, nous devons formater le décalage différemment. Par exemple, un décalage de -120 minutes doit être affiché à 02h00 (deux heures avant UTC).
Fonction d'aide au formatage
Pour simplifier le processus , une fonction d'assistance, toIsoString, peut être utilisée pour formater les dates au format ISO 8601 avec des décalages de fuseau horaire :
function toIsoString(date) { var tzo = -date.getTimezoneOffset(), // Make the offset positive dif = tzo >= 0 ? ' ' : '-', // Determine the sign pad = function(num) { // Ensure two-digit representation return (numCette fonction prend une date comme argument et la formate selon la spécification ISO 8601, y compris le décalage horaire.
Exemple d'utilisation
Le code suivant montre comment utiliser la fonction toIsoString :
var dt = new Date(); console.log(toIsoString(dt)); // Outputs the date in ISO 8601 format with timezone offsetEn utilisant cette approche, vous pouvez facilement formater les dates en JavaScript selon la norme ISO 8601, en vous assurant qu'elles respectent le format approprié.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3