Jour Suivant

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Jour Suivant

par Photographiquement Vôtre » 06 oct. 2006, 13:39

Mon problème viens je crois de mon format datetime.

J'essaye d'utiliser Date_Format mais cela ne marche pas !!!!

par Babeuf » 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 ?

par Photographiquement Vôtre » 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

par zeus » 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à ;)

par graphistnet » 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

par Photographiquement Vôtre » 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 ?

par graphistnet » 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

par Truc » 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.

par Photographiquement Vôtre » 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

par graphistnet » 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;

par Photographiquement Vôtre » 05 oct. 2006, 23:56

Oui mais comment ????

par graphistnet » 05 oct. 2006, 23:51

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

par Photographiquement Vôtre » 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")

par zeus » 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

par graphistnet » 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.