Checkpoint: Correction du décalage horaire dans la gestion des séquences - Utilisation des méthodes UTC (getUTCHours, getUTCMinutes, etc.) pour l'affichage des dates et conversion locale vers UTC lors de l'envoi au serveur. Les heures saisies (ex: 9h00) sont maintenant correctement enregistrées et affichées.
This commit is contained in:
@@ -106,11 +106,12 @@ export default function AdminSequences() {
|
|||||||
try {
|
try {
|
||||||
// Si c'est un objet Date JavaScript
|
// Si c'est un objet Date JavaScript
|
||||||
if (dateValue instanceof Date) {
|
if (dateValue instanceof Date) {
|
||||||
const year = dateValue.getFullYear();
|
// Utiliser les méthodes UTC pour éviter le décalage horaire
|
||||||
const month = String(dateValue.getMonth() + 1).padStart(2, '0');
|
const year = dateValue.getUTCFullYear();
|
||||||
const day = String(dateValue.getDate()).padStart(2, '0');
|
const month = String(dateValue.getUTCMonth() + 1).padStart(2, '0');
|
||||||
const hours = String(dateValue.getHours()).padStart(2, '0');
|
const day = String(dateValue.getUTCDate()).padStart(2, '0');
|
||||||
const minutes = String(dateValue.getMinutes()).padStart(2, '0');
|
const hours = String(dateValue.getUTCHours()).padStart(2, '0');
|
||||||
|
const minutes = String(dateValue.getUTCMinutes()).padStart(2, '0');
|
||||||
return `${year}-${month}-${day}T${hours}:${minutes}`;
|
return `${year}-${month}-${day}T${hours}:${minutes}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -154,6 +155,15 @@ export default function AdminSequences() {
|
|||||||
setIsEditOpen(true);
|
setIsEditOpen(true);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Convertir une date locale (datetime-local) en ISO UTC
|
||||||
|
const convertLocalToUTC = (localDateStr: string): string => {
|
||||||
|
if (!localDateStr) return localDateStr;
|
||||||
|
// datetime-local retourne "YYYY-MM-DDTHH:mm"
|
||||||
|
// On doit le traiter comme heure locale et le convertir en UTC
|
||||||
|
const localDate = new Date(localDateStr);
|
||||||
|
return localDate.toISOString();
|
||||||
|
};
|
||||||
|
|
||||||
const handleSubmit = (e: React.FormEvent) => {
|
const handleSubmit = (e: React.FormEvent) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
@@ -168,10 +178,14 @@ export default function AdminSequences() {
|
|||||||
lieu: formData.lieu,
|
lieu: formData.lieu,
|
||||||
publicCible: formData.publicCible,
|
publicCible: formData.publicCible,
|
||||||
capaciteMax: parseInt(formData.capaciteMax),
|
capaciteMax: parseInt(formData.capaciteMax),
|
||||||
dateBlocage: formData.dateBlocage,
|
dateBlocage: convertLocalToUTC(formData.dateBlocage),
|
||||||
statut: formData.statut,
|
statut: formData.statut,
|
||||||
formateurId: formData.formateur ? parseInt(formData.formateur) : null,
|
formateurId: formData.formateur ? parseInt(formData.formateur) : null,
|
||||||
dates: formData.dates,
|
dates: formData.dates.map(d => ({
|
||||||
|
...d,
|
||||||
|
dateDebut: convertLocalToUTC(d.dateDebut),
|
||||||
|
dateFin: convertLocalToUTC(d.dateFin),
|
||||||
|
})),
|
||||||
};
|
};
|
||||||
|
|
||||||
if (editingSequence) {
|
if (editingSequence) {
|
||||||
|
|||||||
7
todo.md
7
todo.md
@@ -684,3 +684,10 @@
|
|||||||
- [x] Vérifier si l'erreur vient de la création ou de la recherche dans la map (problème de récupération ID)
|
- [x] Vérifier si l'erreur vient de la création ou de la recherche dans la map (problème de récupération ID)
|
||||||
- [x] Corriger le problème identifié (utilisation de $returningId() pour formations et séquences, ajout ordre pour dates)
|
- [x] Corriger le problème identifié (utilisation de $returningId() pour formations et séquences, ajout ordre pour dates)
|
||||||
- [x] Tester l'import et valider que tout fonctionne
|
- [x] Tester l'import et valider que tout fonctionne
|
||||||
|
|
||||||
|
## Bug décalage horaire - Heures de séquences
|
||||||
|
|
||||||
|
- [x] Identifier où se produit le décalage horaire (+1h) (conversion locale vs UTC)
|
||||||
|
- [x] Vérifier la gestion des fuseaux horaires dans le formulaire
|
||||||
|
- [x] Corriger la conversion des dates/heures (UTC pour affichage et envoi)
|
||||||
|
- [x] Tester la saisie et l'affichage des heures
|
||||||
|
|||||||
Reference in New Issue
Block a user