PHP:不正确的strtotime()

时间:2013-12-28 13:32:49

标签: php date strtotime

我已经浏览过各种stackoverflow解决方案和其他博客,但它仍然无法解决我的问题。

让我们说今天的日期是: 2013-12-28 我希望在1个月后得到日期,它应该显示 2014-01-28

$date = date('o-m-d');
$final = date('o-m-d', strtotime("+1 month", $date));
echo $final;

以上是我的代码。它返回 02/01/1970

我也尝试过mktime方法,但它仍显示1970年的输出。

我做错了什么?

顺便说一句。我在托管服务器上工作。

非常感谢。 :)

3 个答案:

答案 0 :(得分:3)

使用DateTime函数modify

$date = new DateTime( 'o-m-d' );  
echo $date->modify( '+1 month' )->format('o-m-d');

答案 1 :(得分:2)

如果您希望当前日期为+1个月,请使用:

$final = date('o-m-d', strtotime("+1 month"));

或者给定日期:

$date = date('o-m-d');
$final = date('o-m-d', strtotime($date . " +1 month"));
echo $final;

如果你想使用strtotime的第二个参数,它必须是一个时间戳。

答案 2 :(得分:2)

转到 OOP 方式..

<?php
$date = new DateTime('2013-12-28');
$date->add(new DateInterval('P1M'));
echo $date->format('Y-m-d'); //prints 2014-01-28