PHP日期功能无法正常工作

时间:2013-01-30 11:56:08

标签: php date datetime

为什么我的PHP代码给出了以下代码的错误结果:

date_default_timezone_set('UTC');
echo date('d-m-Y');

正在工作和生产:

30-01-2013

但是这段代码:

date_default_timezone_set('UTC');
echo date('d-m-Y',strtotime("+1 month"));

正在制作这个日期:

02-03-2013

而不是:

28-02-2013

但是我只需要月份数。

5 个答案:

答案 0 :(得分:7)

实际上是正确的。

今天是30-01。 +1个月应为30-02。此日期不存在,因此转为02-03(28-02 + 2天)

答案 1 :(得分:3)

使用

解决
http://derickrethans.nl/obtaining-the-next-month-in-php.html

代码:

echo date('d-m-Y',strtotime("first day of next month"));

因为我只需要月份编号。

答案 2 :(得分:2)

PHP开发人员here解释了这个问题。您可以使用解决方法,但是您必须解释您在1月31日+ 1月是2月02日得出的结论的逻辑。

答案 3 :(得分:0)

因为febuary只有28天。 strtotime +1月增加30天,尝试使用DateTime类:http://php.net/manual/en/class.datetime.php

答案 4 :(得分:0)

退房,

<?php   
    date_default_timezone_set('UTC');

    //Current date
    $date= date("Y-m-d");

    // Timestamp of new date after adding 1 month
    $timestamp= strtotime(date("Y-m-d", strtotime($date)) . "+1 month");

    //Converting timestamp of new date to readable date.
    $newdate= date("Y-m-d",$timestamp);
?>