choklata Posté 3 Mars 2006 Partager Posté 3 Mars 2006 comment diminuer 2j d'un date donné en php ? exemple: $date="2003/05/06"; ???===> $date-2= 2003/05/04 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Théo B. Posté 3 Mars 2006 Partager Posté 3 Mars 2006 Tu peux faire : $date1=substr($date,6);$date=substr($date,-2,2);settype($date,'integer');echo $date1.$date-2; Ou encore : $annee=substr($date,4);$mois=substr($date,-4,2);$jour=substr($date,-2,2);echo date('Y/m/d',mktime(0,0,0,$mois,$jour-2,$annee)); Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sonia Gazil Posté 3 Mars 2006 Partager Posté 3 Mars 2006 Bonjour, La première solution de Théo B. ne marchera pas. D'une part, il y a des problèmes dans son code, et d'autre part, elle posera problème dans certains cas. Par exemple, si date contient "2003/05/02", sa solution retournera "2003/05/00". La seconde solution est correcte, mais il y a une petite erreur dans le premier substr. Il faudrait faire : $annee=substr($date,0,4);$mois=substr($date,-4,2);$jour=substr($date,-2,2);echo date('Y/m/d',mktime(0,0,0,$mois,$jour-2,$annee)); Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 3 Mars 2006 Partager Posté 3 Mars 2006 Bonjour, Et pourquoi ne pas utiliser les fonctions qui sont faites pour ça, par exemple strtotime ? Cela ferait par exemple: $date=date("Y/m/d",strtotime("+2 day",strtotime("2005/12/31"))); Simple, non ? Et ça tient compte de l'heure d'hiver, heure d'été, années bissextiles et tout le tralala. Pour mieux comprendre, on peut le mettre sur 3 lignes: $date=strtotime("2005/12/31");$date=strtotime("+2 day",$date);$date=date("Y/m/d",$date); Mais je préfère sur une seule ligne Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 3 Mars 2006 Partager Posté 3 Mars 2006 Un exemple, sur deux années dont une bissextile: $date=date("Y/m/d",strtotime("-2 day",strtotime("2005/03/01")));print $date; affiche "2005/02/27" $date=date("Y/m/d",strtotime("-2 day",strtotime("2004/03/01")));print "<br />".$date; affiche "2004/02/28" Lien vers le commentaire Partager sur d’autres sites More sharing options...
choklata Posté 6 Mars 2006 Auteur Partager Posté 6 Mars 2006 (modifié) et comment diminuer/ajouter (un mois ou une année) d'un date donné donner le cas general svp et merci pour l'aide Modifié 6 Mars 2006 par choklata Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 6 Mars 2006 Partager Posté 6 Mars 2006 Tout simplement en remplaçant le "-2 day" par "-n month" ou "-n year"... avec n étant égal au nombre de jours/mois/années. On peut même utiliser "week" pour les semaines... Remplacer le signe - par + pour ajouter Dan Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant