Jour Suivant

Eléphant du PHP | 330 Messages

05 oct. 2006, 23:26

Bonsoir,

Je pars d'une date :

$date_depart= "2006-10-01";

Comment calculer le jour suivant ("2006-10-02")

Merci d'avance
-------------------------------------------------------
Il n'y a que les cons et les moules qui adhèrent

Eléphant du PHP | 184 Messages

05 oct. 2006, 23:34

Salut,

Tu peux par exemple découper ta chaîne en 3 morceaux et incrémenter la dernière partie de 1 pour avoir le jour suivant.
En utilisant split() par exemple pour le découpage.
Image

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

05 oct. 2006, 23:39

il existe également la fonction strtotime()

tu peut l'utiliser comme suit :
$nouvelle_date = strtotime("+1 day", $ancienne_date);
Elle te permet de gerer automatiquement, les changements de mois et d'année
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 330 Messages

05 oct. 2006, 23:44

J'ai commencé à faire cela :

$date_depart= "2006-10-01";

$a_date = explode("-", $date_depart);
$annee = $a_date[0];
$mois = $a_date[1];
$jour = $a_date[2];

$jour=$jour + 1;

Cela marche mais je n'arrive pas à constituer la nouvelle date ("2006-10-02")
-------------------------------------------------------
Il n'y a que les cons et les moules qui adhèrent

Eléphant du PHP | 184 Messages

05 oct. 2006, 23:51

Tu as tous les éléments pour reformer ta date, il te suffit de reprendre $annee,$mois et $jour
Image

Eléphant du PHP | 330 Messages

05 oct. 2006, 23:56

Oui mais comment ????
-------------------------------------------------------
Il n'y a que les cons et les moules qui adhèrent

Eléphant du PHP | 184 Messages

06 oct. 2006, 00:06

Bon je vais être généreux vu l'heure :)
$date_depart= "2006-10-01";

$a_date = explode("-",$date_depart);
$annee = $a_date[0];
$mois = $a_date[1];
$jour = $a_date[2];

$jour=$jour + 1;

$date_arrivee = $annee."-".$mois."-".$jour;
echo "la date d'arrivée :".$date_arrivee;
Image

Eléphant du PHP | 330 Messages

06 oct. 2006, 00:14

Il me semblait l'avoir fait.

Tu as raison cela doit être l'heure, je vais me coucher.

Merci et bonne nuit
-------------------------------------------------------
Il n'y a que les cons et les moules qui adhèrent

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

06 oct. 2006, 00:33

et si tu passes 2006-10-31 ?
elle donne quoi cette fonction ? :wink:

Tu devrais t'intéresser un peu plus à la proposition de zeus (si la date est dispo sous forme de timesamp).

Sinon reste aussi mktime() qui calcule également les changement de mois en ajoutant un jour au paramètre des jours.

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

Eléphant du PHP | 184 Messages

06 oct. 2006, 01:02

Je suis entierement d'accord, les fonctions de traitement de date sont faites pour ce genre de chose. Je vais dire pour ma défense que d'avoir donner cette solution était un exemple pour montrer les limites, quoique c'est gérable mais autant ne pas réinventer la roue :p
Image

Eléphant du PHP | 330 Messages

06 oct. 2006, 11:10

Dans mon cas, je calcule le nombre de jours de chaque mois que j'intègre dans une boucle (de 1 à nb jours du mois)

Est ce bon dans ce cas là la méthode de Graphinet ?
-------------------------------------------------------
Il n'y a que les cons et les moules qui adhèrent

Eléphant du PHP | 184 Messages

06 oct. 2006, 11:39

Si tu te cantonnes à un mois bien précis en donnant une limite c'est jouable par contre s'il faut gêrer une periode plus longue je te conseille d'aller faire un tour sur les fonctions proposées par Zeus et Truc
Image

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

06 oct. 2006, 12:48

Tout développeur ayant touché au date sais que c'est extremement compliqué de s'attaquer à réinventer la gestion des dates. Il y a les problèmes des mois ayant un nombre de jour différent, les années bissextiles, ...

De plus, PHP te propose une série de fonctions natives très pratiques. Alors, pourquoi t'embeter a recréer quelquechose qui sera, de toute façon, moins testé et éprouvé que les fonctions qui existe déjà ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 330 Messages

06 oct. 2006, 13:07

Oui tu as raison, j'ai essayé avec mktime que j'ai déjà utilisé .

Mais j'un un petit souci car dans ma base, commandeO_timestamp est en format datetime et je compare avec un format date.

Y a t-il un tuto sur les conversion de format

Merci d'avance
-------------------------------------------------------
Il n'y a que les cons et les moules qui adhèrent

Petit nouveau ! | 9 Messages

06 oct. 2006, 13:24

Un bout de code dans le genre :

Code : Tout sélectionner

$date_depart= "2006-10-01"; //On découpe la date : $a_date = explode("-",$date_depart); $annee = $a_date[0]; $mois = $a_date[1]; $jour = $a_date[2]; et on reconstitue une date avec mktime qui corrige les erreurs éventuelles... echo date("Y-m-d", mktime(0, 0, 0, $mois, $jour + 1, $annee));
J'ai pas vu de problème particulier..
Ca pourrait pas coller ?