pour le schéma de la base de données à partir de 1.7 :
http://docs.moodle.org/en/Development:Database_Schema
Pour la conversion en PHP d'un timestamp, selon la culture moodle, on utilise la fonction userdate() comme ceci :
setLocale(LC_TIME, substr(current_language(), 0, 2));
$datetexte = userdate($timestamp);
La ligne supérieure permet de s'assurer que le PHP utilise les bonnes localisations et n'afficha pas la date uniquement en anglais. Il s'agit d'une fonction de PHP et non de Moodle.
La deuxième convertit le timestamp (un timestamp est un temps universel UNIX calculé à partir d'une date de référence au 1er Janvier 1970 à minuit, date avant laquelle le système d'exploitation Unix -- et donc le reste de l'univers -- n'était pas sensée exister
- on appele cette date magique "The Epoch"). La date de référence est exprimée en secondes écoulées à partir de The Epoch, ce qui constitue bien un entier, mais qui va forcément devenir de plus en plus grand (!!) d'où l'idée d'utiliser les plus grand entiers stockables de la base de données.
Je rappelle pour le fun, -- ou pas -- que le bug de l'an 2000 était dû au fait que les années étaient codées sur deux chiffres décimaux. Si le temps est codé sur 32 bits : 2^32 secondes celà représente un comptage de ... 136 ans et des brouettes. D'où un bug à prévoir en 2106. Autre inconvénient : pas d'existence de comptage avant 1970. Il existe une autre raison qui fait que le comptage d'une date Unix ne peut actuellement dépasser Septembre 2035.
Avantage certain : on peut calculer des durées par simple différence.
Pour finir, le bigint stocke des entiers jusqu'à 18.446.744.073.709.551.615 soit 584942417355 ans. De quoi voir venir....