Dans les applications Web, il est courant de collecter des informations de date et d'heure auprès des utilisateurs via des listes déroulantes ou des champs de saisie. Cependant, la création d'un objet Date JavaScript avec des valeurs numériques peut entraîner des problèmes de fuseau horaire, en particulier lorsque les données sont sérialisées et désérialisées.
Considérez le code suivant :
new Date(xiYear, xiMonth, xiDate);
Ce code crée un objet Date basé sur l'année, le mois et la date spécifiés. Cependant, il suppose le fuseau horaire actuel de l'utilisateur, ce qui peut entraîner des écarts si l'application utilise un fuseau horaire différent.
Pour créer un objet Date dans un fuseau horaire spécifique sans utiliser de représentation sous forme de chaîne, suivez ces étapes :
Créez un objet Date à partir d'UTC valeurs :
const utcDate = new Date(Date.UTC(xiYear, xiMonth, xiDate));
Définissez le fuseau horaire souhaité :
utcDate.setUTCHours(utcDate.getUTCHours() + timezoneOffset);
Où timezoneOffset est le différence entre le fuseau horaire de l'utilisateur et UTC (en heures).
Par exemple, si le fuseau horaire de l'utilisateur est GMT 01h00 et que la date souhaitée est le 5 avril :
const xiYear = 2023; const xiMonth = 3; // April is 0-indexed const xiDate = 5; const timezoneOffset = 1; const utcDate = new Date(Date.UTC(xiYear, xiMonth, xiDate)); utcDate.setUTCHours(utcDate.getUTCHours() + timezoneOffset); console.log(utcDate.toLocaleString()); // Output: "Apr 5, 2023, 2:00:00 AM GMT+01:00"
Cette approche garantit que le L'objet Date est créé dans le fuseau horaire souhaité sans recourir à des représentations sous forme de chaîne ou à un code détaillé.
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!