假设我有一个字符串进来,"2007-02-28"
我能写出的最简单的代码是"2007-03-01"
什么?现在我只是在使用strtotime()
,然后添加24*60*60
,然后使用date()
,但只是想知道是否有更清洁、更简单或更聪明的方式来做这件事。
davr
问问题
93995 次
9 回答
86
一个干净的方法是使用strtotime()
$date = strtotime("+1 day", strtotime("2007-02-28"));
echo date("Y-m-d", $date);
会给你2007-03-01
于 2009-03-18T23:41:39.430 回答
34
添加86400更干净更简单。:)
高科技的方法是:
$date = new DateTime($input_date);
$date->modify('+1 day');
echo $date->format('Y-m-d');
但是,如果您在日期上进行一系列转换,而不仅仅是寻找明天,那么这真的是微不足道的。
于 2009-03-18T23:35:06.467 回答
17
您可以在 strtotime 内进行添加,例如
$today="2007-02-28";
$nextday=strftime("%Y-%m-%d", strtotime("$today +1 day"));
于 2009-03-18T23:42:48.193 回答
6
另一种方法是使用函数 mktime()。这是一个非常有用的功能...
$date = "2007-02-28";
list($y,$m,$d)=explode('-',$date);
$date2 = Date("Y-m-d", mktime(0,0,0,$m,$d+1,$y));
但我认为strtotime()
在那种情况下更好......
于 2009-03-19T00:48:58.193 回答
5
最简单的方法...
echo date('Y-m-d',strtotime("+1 day")); //from today
或从指定日期...
echo date('Y-m-d',strtotime("+1 day", strtotime('2007-02-28')));
于 2015-01-18T15:20:34.873 回答
0
你好,你可以在下面试试这个,特别是如果你是法国人
$date = date('l j F Y');
#increment the date
$date2 = date('l j 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;
}
于 2017-07-18T21:11:04.050 回答
0
$your_date = strtotime("1month", strtotime(date("Y-m-d")));
$new_date = date("Y-m-d", $your_date++);
于 2017-10-20T01:03:25.307 回答
0
使用strtotime()
日期格式
echo date('Y-m-d', strtotime('2007-02-28' . ' +1 day'));
于 2021-03-18T10:56:32.697 回答
-1
$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);
于 2016-09-04T12:24:10.587 回答