Accueil » Programmation

Timestamp or not Timestamp

6 mars 2009 Pas de commentaires

La plupart des fonctions manipulant les dates en PHP sont basées sur les timestamps. Succintement, un timestamp correspond au nombre de secondes écoulées depuis le 1er janvier 1970 à 0h00.

Or sur un système actuel classique, les entiers sont stockés sur 32 bits. Ce qui signifie que le nombre maximal qu’il peut gérer est 2 147 483 647. (32 exposant 2). Ce nombre sera atteint le 19 janvier 2038 à 3 h 14 min 7 sec. Sur les channels IRC de programmation, nous avons souvent des demandes sur les moyens de travailler avec des dates sans utiliser les timestamps pour éviter ce problème.

Cette prévision est totalement absurde. Les architectures évoluent et le 64 bits est de plus en plus courant. On peut même imaginer que nous utiliserons du 128 bits d’ici 2038. Pourtant malgré les explications, beaucoup s’entêtent à vouloir évincer l’utilisation du timestamp. Voici donc une capture d’un petit benchmark testant le timestamp sur les 2 architectures.

timestamp 64 bits

Maintenant vous aurez la preuve que les plateformes 64 bits résolvent bel et bien le problème. Alors n’ayez plus aucune crainte et profitez de toutes les fonctions de gestion de dates au lieu de chercher des solutions capillotractées qui ne feront que diminuer les performances de votre code.

Sylvain

Tombé dans le développement depuis l'âge de 10 ans, je m'intéresse rapidement au ecommerce et crée la solution Myeshop en 2007. Web addict, j'essaie de vulgariser notre métier en partageant mes expériences clients et personnelles avec vous sur ce blog

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle Plus

Partager cet article sur Twitter en personnalisant votre message

Laissez un commentaire

Ajoutez votre commentaire ci-dessous, ou créez un rétrolien depuis votre site. Vous pouvez également souscrire à ces commentaires par RSS.

Merci de vous conformer à la netetiquette.

Vous pouvez utiliser ces balises :
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>