Checkpoint: Correction complète et définitive du décalage horaire. Toutes les fonctions de formatage de dates ont été réécrites pour parser manuellement les chaînes MySQL sans passer par new Date() qui provoquait des conversions UTC. Les corrections incluent : parseLocalDateTime côté serveur, safeFormatDate dans le formulaire d'édition, formatDate dans AdminSequences, Inscription et AdminSequenceInscrits. L'heure saisie correspond désormais exactement à l'heure affichée partout dans l'application.

This commit is contained in:
Manus Sandbox
2025-11-13 03:23:12 -05:00
parent fedfcc59a4
commit 0b83cbd8cd
4 changed files with 85 additions and 21 deletions

View File

@@ -167,14 +167,25 @@ export default function AdminSequenceInscrits() {
return formations.find((f) => f.id === sequence.formationId)?.nom || "N/A";
};
const formatDate = (date: Date) => {
return new Date(date).toLocaleDateString("fr-FR", {
day: "2-digit",
month: "2-digit",
year: "numeric",
hour: "2-digit",
minute: "2-digit",
});
const formatDate = (dateValue: any) => {
if (!dateValue) return "N/A";
try {
// Parser la date MySQL sans conversion UTC
const dateStr = String(dateValue);
const match = dateStr.match(/(\d{4})-(\d{2})-(\d{2})[T ]?(\d{2}):(\d{2})/);
if (!match) {
console.warn('Format de date non reconnu:', dateValue);
return "N/A";
}
const [, year, month, day, hours, minutes] = match;
return `${day}/${month}/${year} ${hours}:${minutes}`;
} catch (error) {
console.error('Erreur de formatage de date:', error, dateValue);
return "N/A";
}
};
const getStatutBadge = (statut: string) => {