mystère sur mktime

newsralf
Invité n'ayant pas de compte PHPfrance

08 mai 2006, 16:01

Bonjour,

J'adore programmer car pire qu'aux échecs, on trouve des situations incroyabes !

Voici un petit bout de code :
$ladatefin = mktime(0, 0, 0, 06, 17, 2038) ;
echo strftime("%A %d %B %Y",$ladatefin);

L'affage de la date est correcte tant que je ne dépasse pas 2037 !! Ensuite, le echo affiche une date en 1969.
Quelqu'un a une explication ?

Merci à vous :shock:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

08 mai 2006, 16:08

Salut,

Ne cherche pas midi à 14h :wink:
L'intervalle de validité d'un timestamp va généralement du Vendredi 13 Décembre 1901 20:45:54 GMT au Mardi 19 Janvier 2038 03:14:07 GMT. (Ces dates correspondent aux valeurs minimales et maximales des entiers 32 bits non-signés). Sur les systèmes Windows, cette intervalle va du 01-01-1970 au 19-01-2038.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

newsralf
Invité n'ayant pas de compte PHPfrance

08 mai 2006, 16:11

Salut,
Merci, puissant le truc.
Le coup du 1970 je connaissais mais pas la fin.
Ca veut dire qu'on ne peut rien développer pour après 2038 ?
Comment contourner ? Pour des agendas par ex ?

Merci :D

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

08 mai 2006, 16:18

Je pense pas que tu prévois un rendez vous pour le 14 avril 2045 ! :lol:

Tu peux développer avec le timestamp, en 2035 ton script sera de tout façon plus qu'obsolète.

Il s'agit plus d'une limitation matérielle donc rien à faire pour l'instant

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 19672 Messages

08 mai 2006, 17:33

Ca veut dire qu'on ne peut rien développer pour après 2038 ?
Pas tout à fait: d'ici là, les machines en 32 bits auront quasiment disparu sauf peut-être dans les musées de l'informatique : les machines en 64 bits commencent à appraître un peu partout et vont permettre le traitement sur des nombres infiniment plus importants : la limite de 2038 sera repoussée à une période où aucun d'entre nous n'aura plus à coder quoique ce soit tellement on sera morts :langue:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

newsralf
Invité n'ayant pas de compte PHPfrance

08 mai 2006, 19:06

Merci, c'est ce que je pensais aussi.