Calculs sur des dates.

Le forum de l'Annuaire Francophone des Scripts CGI: CGI : Problème avec un script: Calculs sur des dates.

DarkSide

jeudi 03 janvier 2002 - 15h57
J'ai :
$now = time();
puis :
$expire = $now + (60*60*24*30);
c'est à dire que $expire = $now + 30 jours.

si localtime($now) = 02/01/2002
j'obtiens localtime($expire) = 32/02/2002
alors que je devrais avoir 02/03/2002 (à peu près) d'après la doc.

Voilà mon problème, si qqn a une réponse je le remercie de me la communiquer.

Serge.

Frédéric (Frédéric)

jeudi 03 janvier 2002 - 20h39
Bonjour,

il faudrait voir votre code en entier pour trouver l'erreur.
Moi je vous propose ceci qui fonctionne parfaitement :
# lets go
$maintenant = &Date(0);
$unmois = &Date(30*24*3600);

print <<FIN;
maintenant : $maintenant
dans 1 mois : $unmois
FIN


sub Date
{ my $decalage = $_[0];
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time + $decalage);
$annee = 1900 + $year;
$mon++;
return "$mday/$mon/$annee" ;
}

Et lorsque l'on exécute, cela donne :
D:\temp>perl date.pl
maintenant : 3/1/2002
dans 1 mois : 2/2/2002

ce qui me parait relativement correct.

DarkSide

vendredi 04 janvier 2002 - 19h05
Arrrgh ! je m'en veux !!!

Je suis désolé mais j'avais utilisé $yday au lieu de $mday !!!

en fait si on avait pas été au mois de janvier j'aurais trouvé tout seul :)

Une erreur à quelques jours près ... pas de chance.

Merci Frédéric, je vois qu'on peut toujours compter sur toi !

Serge.


Ajouter un message


Ceci est une zone publique. Si vous n'avez pas de compte, entrez votre nom dans le champ "Identificateur" et laissez le mot de passe vide. Votre adresse E-mail est facultative.
Identificateur :  
Mot de passe :
E-mail :
Poster "anonymement"