La façon la plus simple d'incrémenter une date en PHP?
Dire que j'ai une chaîne de venir dans, "2007-02-28"
, Quel est le code le plus simple que je puisse écrire pour le transformer en "2007-03-01"
? Droit maintenant, je suis juste en utilisant strtotime()
, puis en ajoutant 24*60*60
, puis en utilisant date()
, mais je me demande s'il y a une façon plus propre, plus simple, ou plus intelligente de le faire.
8 réponses
proprement utiliser strtotime()
$date = strtotime("+1 day", strtotime("2007-02-28"));
echo date("Y-m-d", $date);
vous donnera le 2007-03-01
c'est plus propre et plus simple d'ajouter 86400. :)
Le high-tech est de faire:
$date = new DateTime($input_date);
$date->modify('+1 day');
echo $date->format('Y-m-d');
mais cela n'en vaut vraiment la peine que si vous faites, disons, une séquence de transformations sur la date, plutôt que de simplement trouver demain.
Vous pouvez faire l'addition directement dans strtotime, par exemple
$today="2007-02-28";
$nextday=strftime("%Y-%m-%d", strtotime("$today +1 day"));
une autre façon est d'utiliser la fonction mktime(). Il est très utile à la fonction...
$date = "2007-02-28";
list($y,$m,$d)=explode('-',$date);
$date2 = Date("Y-m-d", mktime(0,0,0,$m,$d+1,$y));
mais je pense que strtotime()
le mieux dans cette situation...
la façon La plus simple...
echo date('Y-m-d',strtotime("+1 day")); //from today
OU d'une date spécifique...
echo date('Y-m-d',strtotime("+1 day", strtotime('2007-02-28')));
Bonjour, vous pouvez essayer ce ci-dessous, surtout si vous êtes français
$date = date('l j F Y');
#increment the date
$date2 = date('l j F Y', strtotime("+7 day"));
pour traduire en français, vous pouvez utiliser la fonction setlocale() ou la fonction ci-dessous :
function fr_date($date){
$date = explode(' ', $date);
$date = str_replace('Monday','Lundi',$date);
$date = str_replace('Tuesday','Mardi',$date);
$date = str_replace('Wednesday','Mercredi',$date);
$date = str_replace('Thursday','Jeudi',$date);
$date = str_replace('Friday','Vendredi',$date);
$date = str_replace('Saturday','Samedi',$date);
$date = str_replace('Sunday','Dimanche',$date);
$date = str_replace('January','Janvier',$date);
$date = str_replace('February','Février',$date);
$date = str_replace('March','Mars',$date);
$date = str_replace('April','Avril',$date);
$date = str_replace('May','Mai',$date);
$date = str_replace('June','Juin',$date);
$date = str_replace('July','Juillet',$date);
$date = str_replace('August','Août',$date);
$date = str_replace('September','Septembre',$date);
$date = str_replace('October','Octobre',$date);
$date = str_replace('November','Novembre',$date);
$date = str_replace('December','Décembre',$date);
$date = implode(' ',$date);
return $date;
}
$your_date = strtotime("1month", strtotime(date("Y-m-d")));
$new_date = date("Y-m-d", $your_date++);
$early_start_date = date2sql($_POST['early_leave_date']);
$date = new DateTime($early_start_date);
$date->modify('+1 day');
$date_a = new DateTime($early_start_date . ' ' . $_POST['start_hr'] . ':' . $_POST['start_mm']);
$date_b = new DateTime($date->format('Y-m-d') . ' ' . $_POST['end_hr'] . ':' . $_POST['end_mm']);
$interval = date_diff($date_a, $date_b);