OVH Cloud OVH Cloud

Ajouter 1 jour a une date ?

7 réponses
Avatar
paul
Bonjour,

pff... il y a des moment de grande déprime quand on n'arrive pas à
grand chose. Et c'est la cas maintenant :
je n'arrive pas à ajouter 1 jour à la date que j'obtiens avec

$date_french = strftime("%d-%m-%Y",strtotime($d));

Comment faire ça ?
Merci !

Paul

7 réponses

Avatar
John GALLET
Bonjour,

pff... il y a des moment de grande déprime quand on n'arrive pas à
grand chose. Et c'est la cas maintenant :
je n'arrive pas à ajouter 1 jour à la date que j'obtiens avec


Il y a deux choses qui m'ont toujours brouté en informatique : les
imprimantes (quand il y a du papier et de l'encre=>bourrage papier) et la
gestion des dates. Rien que convertir une date en GMT à l'heure locale,
c'est la misère.

Comment faire ça ?
Si le but est de générer une requête SQL, je te conseille vivement

d'utiliser les fonctions adéquates du SGBD en question. Ce n'est pas
portable, mais c'est beaucoup moins casse couilles. Exemple sur Mysql, tu
veux trouver les rangs pour lesquels la date machin a moins de 3 mois :

... WHERE DATE_ADD(date_machin, INTERVAL 3 MONTH) > NOW()

(piège de syntaxe, l'unité DAY/MONTH/etc.. est toujours au singulier).

Si vraiment il est nécessaire de calculer ça en PHP, le moins casse pied
est de repasser par l'An Moulinex Zéro i.e. recalculer le timestamp unix,
ajouter la quantité de scondes, et reconvertir.

a++;
JG

Avatar
Olivier Miakinen

pff... il y a des moment de grande déprime quand on n'arrive pas à
grand chose. Et c'est la cas maintenant :
je n'arrive pas à ajouter 1 jour à la date que j'obtiens avec

$date_french = strftime("%d-%m-%Y",strtotime($d));

Comment faire ça ?


Le timestamp est exprimé en secondes. Un jour, c'est 24 heures de 60
minutes de 60 secondes, donc 24×60×60 = 86400 secondes.

$date_french = strftime("%d-%m-%Y", strtotime($d)+86400);

Avatar
CrazyCat
pff... il y a des moment de grande déprime quand on n'arrive pas à
grand chose. Et c'est la cas maintenant :
je n'arrive pas à ajouter 1 jour à la date que j'obtiens avec
$date_french = strftime("%d-%m-%Y",strtotime($d));


Est-ce que
$date_french = strftime("%d-%m-%Y",strtotime($d, "+1 day"));
ne marcherait pas?

--
Astuces pour webmasters: http://www.crazycat.info
Tchat francophone: http://www.crazy-irc.net

Avatar
Yanick
Suivre ces deux fonctions dans le manuel de PHP :

strtotime() : http://ca.php.net/manual/fr/function.strtotime.php

et

strftime() : http://ca.php.net/manual/fr/function.strftime.php

(voir aussi setlocale() :
http://ca.php.net/manual/fr/function.setlocale.php)



pff... il y a des moment de grande déprime quand on n'arrive pas à
grand chose. Et c'est la cas maintenant :
je n'arrive pas à ajouter 1 jour à la date que j'obtiens avec
$date_french = strftime("%d-%m-%Y",strtotime($d));


Est-ce que
$date_french = strftime("%d-%m-%Y",strtotime($d, "+1 day"));
ne marcherait pas?

--
Astuces pour webmasters: http://www.crazycat.info
Tchat francophone: http://www.crazy-irc.net



Avatar
Didier

pff... il y a des moment de grande déprime quand on n'arrive pas à
grand chose. Et c'est la cas maintenant :
je n'arrive pas à ajouter 1 jour à la date que j'obtiens avec

$date_french = strftime("%d-%m-%Y",strtotime($d));

Comment faire ça ?



Le timestamp est exprimé en secondes. Un jour, c'est 24 heures de 60
minutes de 60 secondes, donc 24×60×60 = 86400 secondes.

$date_french = strftime("%d-%m-%Y", strtotime($d)+86400);
Je ne donne plus dans les 86400 secondes depuis que je me suis frotté

(sans succès) à l'heure d'hiver.
Maintenant j'utilise la méthode mktime() et date().
Didier.


Avatar
Olivier Miakinen

$date_french = strftime("%d-%m-%Y", strtotime($d)+86400);
Je ne donne plus dans les 86400 secondes depuis que je me suis frotté

(sans succès) à l'heure d'hiver.


Tout dépend de ce que cherche à faire Paul, mais c'est vrai que j'aurais
dû préciser. Si tu veux connaître la date qui suit une autre date,
prendre une heure proche de minuit pour faire ça est en effet assez
casse-gueule. Mais si tu veux connaître la date et l'heure qu'il sera un
jour (réel) après une date donnée, alors le +86400 est la -- ou du moins
une -- bonne méthode.

Maintenant j'utilise la méthode mktime() et date().


Oui, tout dépend du besoin.


Avatar
dwojylac.nospam
paul wrote:

Bonjour,

pff... il y a des moment de grande déprime quand on n'arrive pas à
grand chose. Et c'est la cas maintenant :
je n'arrive pas à ajouter 1 jour à la date que j'obtiens avec

$date_french = strftime("%d-%m-%Y",strtotime($d));


Comme le dis Didier dans la même discussion mktime() et date() sont les
solutions.

Si cela peut t'aider des exemples :
http://wojylac.free.fr/article.php?art=6


--
http://wojylac.free.fr
Un proverbe chinois dit que lorsqu'on a rien à dire
on cite généralement un proverbe chinois.