PHP日期strtotime无法正常工作

use*_*331 5 php date strtotime

我写了这段代码

echo date("Y-m-d", strtotime($date, strtotime("+ " . $days . " days")));

$date = 2012-04-12
$days = 15
Run Code Online (Sandbox Code Playgroud)

我希望将$days(15天)添加到日期(2012-04-12)我希望得到2012-04-27这个代码返回我2012-04-12,我做错了什么?

Nat*_*ate 8

echo date('Y-m-d', strtotime('+15 days', strtotime('2012-04-12')));
Run Code Online (Sandbox Code Playgroud)


Mar*_*c B 5

不要使用strtotime().这是不可靠的,虽然你并没有真正做任何真正会在臀部咬你的东西.但依赖于strtotime仍然是一件坏事,因为它会让你的生活在某些时候变得悲惨.

改为使用DateTime:

$now = DateTime::CreateFromFormat('Y-m-d', '2012-04-12');
$then = $now->add(new DateInterval('P15D'));
$date = $then->format('Y-m-d');
Run Code Online (Sandbox Code Playgroud)

  • `strtotime()`并不可靠; 实际上,DateTime类在工作表下使用它. (6认同)
  • 我原则上同意你的意见,Marc,但我质疑实例化一个对象做一些如此微不足道的事情的必要性.如果他要进行时区更改或其他更高级的操作,那么绝对是使用该对象.只需添加几天?咩. (2认同)