mardi, janvier 27, 2009

epoch timestamp: time() = 1234567890

Un bref post très geek:

la fonction time() (i.e. heure courante) de PHP ou ses équivalents en Perl, Java, Javascript, etc... donneront le résultat 1234567890 le 14 février 2009 à 00:31:30. Fun, non ?

ce chiffre correspond aux nombres de secondes depuis "Unix Epoch" (i.e. le 1 janvier 1970 à 00:00:00), le début du monde sur Unix.

On risque de reparler de ceci pour le bug de l'an 2038: jour où les compteurs entiers sur 32 bits représentant ces dates boucleront pour revenir à 0. D'ici là, le mode 32 bit sera sûrement mort et on n'aura pas à refaire le b...del (inutile!) de l'an 2000.

[Via tomhtml]

Source: blog Media & Tech (par didier durand)

2 commentaires:

Anonyme a dit…

Bonjour,

Les timestamp sont généralement signés, donc en 2038 ça passera en négatif, et retour à 1901 (http://en.wikipedia.org/wiki/Year_2038_problem)

Ensuite "le mode 32bit" ça veut pas dire grand chose, rien à voir avec l'architecture des OS ou des processeurs. Ca fait des années qu'on sait stocker des données sur plus de 16 ou 32 bits (exemple les double/long double en C++ utilisent 64 et 80 bits). De même, c'est pas parce qu'on a un OS et un proc 64 bits qu'on ne stocke pas certains types de données en 8 ou 16 bits, pour occuper moins de place en mémoire. En 2038, il y a fort à parier qu'il y aura encore des données stockées sur 8,16,24,32 bits, et il restera peut etre encore des fameux timestamp 32 bits, il n'y à qu'a voir le flop qu'a fait l'ipv6 ;)

d.durand a dit…

Bonjour Anonyme,

Pour être précis, j'aurais dû effectivement écrire "représentation des timestamps sur 32 bits" au lieu d'architecture 32 bits. C'est vrai!

cordialement

didier