choklata Posté 3 Mars 2006 Posté 3 Mars 2006 comment diminuer 2j d'un date donné en php ? exemple: $date="2003/05/06"; ???===> $date-2= 2003/05/04
Théo B. Posté 3 Mars 2006 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));
Sonia Gazil Posté 3 Mars 2006 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));
Dan Posté 3 Mars 2006 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
Dan Posté 3 Mars 2006 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"
choklata Posté 6 Mars 2006 Auteur 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
Dan Posté 6 Mars 2006 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
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant