Aller au contenu

Avoir du mktime() en négatif


Siol

Sujets conseillés

Bonjour,

Je voudrais enregistré la date de naissance des membre de mon futur site au format timestamp. Comme vous devez vous en douté, en dessous de 1970 la fonction mktime() ne marche plus. Je voudrais connaitre le meilleur moyen pour passer à travers pour faire du timestamp en négatif.

Cordialement.

Lien vers le commentaire
Partager sur d’autres sites

Salut, pourquoi n'essaies-tu pas plutôt d'enregistrer ta date au format SQL? Lui n'a aucune restriction concernant l'années de naissance ;) Et c'est bien plus facile encore à mannier que le timestamp PHP.

Lien vers le commentaire
Partager sur d’autres sites

La reponse rapide est : ca ne marchera pas.

Le timestamp est stoque sur un entier 32 bits. Donc, que tu ais un nombre positif ou un nombre negatif, il sera toujours stoque sur cet entier 32 bits et donc tu es toujours physiquement limite au 1er janvier 1970. D'ailleurs, il y a certains (vieux) systems qui stoquent leur timestamps sur des entiers 32bits signes donc tu peux avoir un timestamp negatif ... mais la date est plus grande que celles des entiers positif (voir le codage en binaire). Super merdique vu que tu ne peux plus comparer des timestamps. Il me semble que c'etait le cas d'ULTRIX mais il ne devait pas etre le seul.

Pour une reponse plus longue, il y a certains systemes 64 bits qui peuvent utiliser des timestamp 64 bits. Mais c'est fait par une API specifique et donc non pris en charge par PHP (je ne me souviens plus ou j'ai vu ca).

T'as donc 2 solutions :

  • Utiliser le format SQL comme propose par zirone
  • utiliser un entier au format AAAAMMJJ : c'est le systeme que j'utilise lorsque je ne fais pas mes traitement en SQL car ca a l'enorme avantage de permettre de faire des comparaisons ou des trie avec les operateurs ou les fonctions simples.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...