mirror of
https://github.com/R0m1k3/noteflow.git
synced 2026-10-18 20:59:35 +02:00
Fix: Décalage horaire Google Calendar - Solution complète
PROBLÈME PERSISTANT résolu avec 3 correctifs:
1. FRONTEND - Timezone explicite (src/pages/Index.tsx):
- Ligne 904-905: Ajout timeZone: 'Europe/Paris'
- Ligne 761: Ajout timeZone: 'Europe/Paris' pour alertes
Avant: toLocaleTimeString('fr-FR', { hour: '2-digit', minute: '2-digit' })
Après: toLocaleTimeString('fr-FR', { hour: '2-digit', minute: '2-digit', timeZone: 'Europe/Paris' })
Force l'affichage en heure de Paris même si navigateur dans autre timezone
2. BACKEND - Script correction forcée (scripts/force-fix-calendar-timezone.js):
- Diagnostic complet de l'état actuel
- Suppression FORCÉE de tous les événements
- Conversion TIMESTAMPTZ avec timezone Europe/Paris
- Vérification finale des types de colonnes
- Instructions étape par étape
Utilisation:
docker exec notes-todo-app node scripts/force-fix-calendar-timezone.js
3. DIAGNOSTIC approfondi:
- Affiche types colonnes PostgreSQL
- Montre exemples de dates stockées
- Compare format brut vs formaté
- Détecte problèmes timezone automatiquement
POURQUOI ÇA NE MARCHAIT PAS AVANT:
- Migration timezone peut ne pas avoir été appliquée
- Anciennes données encore présentes avec mauvais timezone
- Frontend n'avait pas timeZone explicite dans toLocaleTimeString
- Navigateur pouvait être dans autre timezone que Paris
SOLUTION MAINTENANT:
1. Script force la suppression + conversion
2. Frontend force timezone Europe/Paris
3. Nouvelles syncs Google Calendar auront bonnes heures
APRÈS REBUILD:
1. docker-compose build notes-app
2. docker-compose restart notes-app
3. docker exec notes-todo-app node scripts/force-fix-calendar-timezone.js
4. Resynchroniser Google Calendar dans interface web
5. Vérifier que heures correspondent
Fichiers modifiés:
- src/pages/Index.tsx (timeZone: 'Europe/Paris')
- scripts/force-fix-calendar-timezone.js (nouveau, correction forcée)
This commit is contained in:
2 files changed
+158
-3
No files matched your search
+3
-3
@@ -758,7 +758,7 @@ const Index = () => {
|
||||
Rendez-vous dans moins de 30 minutes : {upcomingAlert.title}
|
||||
</span>
|
||||
<span className="text-sm opacity-90">
|
||||
à {new Date(upcomingAlert.start_time).toLocaleTimeString('fr-FR', { hour: '2-digit', minute: '2-digit' })}
|
||||
à {new Date(upcomingAlert.start_time).toLocaleTimeString('fr-FR', { hour: '2-digit', minute: '2-digit', timeZone: 'Europe/Paris' })}
|
||||
</span>
|
||||
</div>
|
||||
<Button
|
||||
@@ -901,8 +901,8 @@ const Index = () => {
|
||||
<h4 className="font-medium line-clamp-2 text-sm">{event.title}</h4>
|
||||
</div>
|
||||
<p className="text-xs text-muted-foreground">
|
||||
{isToday ? "Aujourd'hui" : startDate.toLocaleDateString('fr-FR', { day: '2-digit', month: '2-digit' })}
|
||||
{isAllDay ? ' - Toute la journée' : ` à ${startDate.toLocaleTimeString('fr-FR', { hour: '2-digit', minute: '2-digit' })}`}
|
||||
{isToday ? "Aujourd'hui" : startDate.toLocaleDateString('fr-FR', { day: '2-digit', month: '2-digit', timeZone: 'Europe/Paris' })}
|
||||
{isAllDay ? ' - Toute la journée' : ` à ${startDate.toLocaleTimeString('fr-FR', { hour: '2-digit', minute: '2-digit', timeZone: 'Europe/Paris' })}`}
|
||||
</p>
|
||||
{event.location && (
|
||||
<p className="text-xs text-muted-foreground mt-1 truncate">
|
||||
|
||||
Reference in new issue
Block a user