Php STROTIME在给出开始日期时跳过月份

Php STROTIME在给出开始日期时跳过月份,php,date,Php,Date,我试图从一个特定的时间戳开始,从一个月跳到另一个月,但当我从八月跳到九月时,总是跳过九月。从8月31日(1346389200)起至1个月: strtotime('+1 month', 1346389200); 产量1349067600——即10月1日。 我已经读过所有关于strotime在没有开始日期的情况下出错的文章,但是这会有什么问题呢? 谢谢您可能不应该使用时间戳和strotime进行此比较。由于诸如夏令时、闰年等原因,您将引入问题。最好使用DateTime和DateInterval类/

我试图从一个特定的时间戳开始,从一个月跳到另一个月,但当我从八月跳到九月时,总是跳过九月。从8月31日(1346389200)起至1个月:

strtotime('+1 month', 1346389200);
产量1349067600——即10月1日。 我已经读过所有关于strotime在没有开始日期的情况下出错的文章,但是这会有什么问题呢?
谢谢

您可能不应该使用时间戳和
strotime
进行此比较。由于诸如夏令时、闰年等原因,您将引入问题。最好使用DateTime和DateInterval类/函数以更彻底的方式完成这项工作


您可能不应该使用时间戳和
strotime
进行此比较。由于诸如夏令时、闰年等原因,您将引入问题。最好使用DateTime和DateInterval类/函数以更彻底的方式完成这项工作


8月31日后的一个月是9月31日,但由于它不存在,php将结果强制为1 Oktober。 因此,您应该在第1天强制当前月份(当然,如果您只想要年和月):


但是,如果您使用php>5.3,您可以使用更可靠的
DateTime
类和方法。

8月31日后的一个月是9月31日,但是,由于它不存在,php强制结果为1 Oktober。 因此,您应该在第1天强制当前月份(当然,如果您只想要年和月):


但是如果你使用php>5.3,你可以使用更可靠的
DateTime
类和方法。

你想做什么?得到几个月内第一天的日期?31.Avg+1个月=1.Oct有效吗?@glavić否他指的是8月31日+1个月=1个十月你想做什么?得到几个月内第一天的日期?31.Avg+1个月=1.10月有效吗?@glavić否他指的是8月31日+1个月=10月1日
strtotime('+1 month',strtotime(date("Y-m-1",1346389200)));