Самый простой способ увеличить дату на PHP?

Скажем, у меня есть строка, "2007-02-28" , какой самый простой код я мог бы написать, чтобы превратить это в "2007-03-01" ? Прямо сейчас я использую strtotime() , затем добавляю 24*60*60 , а затем использую date() , но просто задаюсь вопросом, есть ли более чистый, простой или более умный способ сделать это.

strtotime() способом является использование strtotime()

 $date = strtotime("+1 day", strtotime("2007-02-28")); echo date("Ymd", $date); 

Дадут вам 2007-03-01

Это чище и проще добавить 86400. 🙂

Высокотехнологичный способ:

 $date = new DateTime($input_date); $date->modify('+1 day'); echo $date->format('Ym-d'); 

но это действительно только отдаленно целесообразно, если вы делаете, скажем, последовательность преобразований на дату, а не просто находить завтра.

Вы можете сделать добавление прямо внутри strtotime, например

  $today="2007-02-28"; $nextday=strftime("%Y-%m-%d", strtotime("$today +1 day")); 

Другой способ – использовать функцию mktime (). Это очень полезная функция …

 $date = "2007-02-28"; list($y,$m,$d)=explode('-',$date); $date2 = Date("Ymd", mktime(0,0,0,$m,$d+1,$y)); 

но я думаю, что strtotime() лучше в этой ситуации …

Самый простой способ …

 echo date('Ym-d',strtotime("+1 day")); //from today 

ИЛИ с указанной даты …

 echo date('Ym-d',strtotime("+1 day", strtotime('2007-02-28'))); 

Привет, вы можете попробовать это ниже, особенно если вы французский

 $date = date('lj F Y'); #increment the date $date2 = date('lj F Y', strtotime("+7 day")); 

для перевода на французский язык вы можете использовать функцию setlocale () или функцию ниже:

 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("Ymd"))); $new_date = date("Ymd", $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('Ym-d') . ' ' . $_POST['end_hr'] . ':' . $_POST['end_mm']); $interval = date_diff($date_a, $date_b);