Lenguaje y Normas de Desarrollo: Difference between revisions

Line 120: Line 120:


=== Las fechas y la Zona Horaria ===
=== Las fechas y la Zona Horaria ===
Dolibarr se veut une application mutli-utilisateur et multi-localisation. Il convient donc de stocker les dates dans le bon format. Pour éviter les problèmes de conversion, les règles suivantes doivent être appliquées:
Dolibarr es una aplicación multi-usuario y multi-ubicación. Por lo tanto, es necesario almacenar las fechas en el formato correcto. Para evitar problemas de conversión, deben aplicarse las siguientes reglas:
* Une date en mémoire doit être au format Timestamp GMT.
* Una fecha en memoria debe de estar en formato Timestamp GMT.
* Une date stockée en base de données contient le Timestamp GMT en rapport avec la date soumise dans la requête en heure locale <b>du serveur PHP</b>. Cela ne concerne pas les dates mises à jour automatiquement par la base (champ '''tms''' en base).
* Una fecha guardada en la base de datos contiene el Timestamp GMT en relación con la fecha que figura en la consulta en hora local <b>del servidor PHP</b>. No se trata de las fechas de actualización de la base de datos (campo '''tms''' en la base de datos).
Ainsi le 1er janvier 1970, 2 heures à Paris (TZ=+1) sera stocké en mémoire sera soumis à la base de données avec la chaine '19700101020000' (PHP convertit en heure de son TZ et la base déconvertit avec son TZ qui est le même que celui de PHP).
Por lo tanto, el 1 de enero de 1970, a las 2 en Paris (TZ=+1) será almacenado en memora y será enviado a la base de datos con la cadena '19700101020000' (PHP convierte en hra de su TZ y la base de datos la deconvierte con su TZ que es la misma que la de PHP).


Les méthodes select doivent donc traduire les champs dates lus qui sont au format chaine TZ de la base ('19700101020000') par appel de la méthode db->jdate afin de récupérer une information en mémoire au format Timestamp GMT. Et les méthodes insert doivent lors de la génération de la requête convertir la date mémoire connue en variable, par la méthode db->idate (Voir exemples générés par le squelette).
Les méthodes select doivent donc traduire les champs dates lus qui sont au format chaine TZ de la base ('19700101020000') par appel de la méthode db->jdate afin de récupérer une information en mémoire au format Timestamp GMT. Et les méthodes insert doivent lors de la génération de la requête convertir la date mémoire connue en variable, par la méthode db->idate (Voir exemples générés par le squelette).