Checkpoint: Correction du décalage d'une heure entre la saisie et l'affichage des dates de séquences. Création d'un module dateUtils.ts avec des fonctions parseLocalDateTime et formatToLocalDateTime pour gérer correctement les conversions entre heure locale et UTC. Toutes les procédures de création et mise à jour de séquences utilisent maintenant ces fonctions pour préserver l'heure locale saisie par l'utilisateur.
This commit is contained in:
33
server/dateUtils.ts
Normal file
33
server/dateUtils.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
/**
|
||||
* Utilitaires pour la gestion des dates
|
||||
* Gère correctement les conversions entre heure locale et UTC
|
||||
*/
|
||||
|
||||
/**
|
||||
* Convertit une chaîne datetime-local (format: "2025-01-15T14:30") en Date
|
||||
* en préservant l'heure locale (pas de conversion UTC)
|
||||
*/
|
||||
export function parseLocalDateTime(dateTimeString: string): Date {
|
||||
// Le format datetime-local est "YYYY-MM-DDTHH:mm"
|
||||
// On ajoute ":00" pour les secondes si nécessaire
|
||||
const normalized = dateTimeString.length === 16 ? `${dateTimeString}:00` : dateTimeString;
|
||||
|
||||
// Créer la date en heure locale
|
||||
const date = new Date(normalized);
|
||||
|
||||
return date;
|
||||
}
|
||||
|
||||
/**
|
||||
* Formate une Date en chaîne datetime-local pour les inputs HTML
|
||||
* Format: "YYYY-MM-DDTHH:mm"
|
||||
*/
|
||||
export function formatToLocalDateTime(date: Date): string {
|
||||
const year = date.getFullYear();
|
||||
const month = String(date.getMonth() + 1).padStart(2, '0');
|
||||
const day = String(date.getDate()).padStart(2, '0');
|
||||
const hours = String(date.getHours()).padStart(2, '0');
|
||||
const minutes = String(date.getMinutes()).padStart(2, '0');
|
||||
|
||||
return `${year}-${month}-${day}T${hours}:${minutes}`;
|
||||
}
|
||||
Reference in New Issue
Block a user