我试图从一个特定的时间戳开始逐月跳跃,但是当我从八月开始跳跃时,九月总是被跳过。从 8 月 31 日(1346389200)开始,跳跃 1 个月:
strtotime('+1 month', 1346389200);
产生 1349067600 - 这是 10 月 1 日。如果没有开始计算的开始日期,我已经阅读了有关 strtotime 犯错误的所有内容,但这可能是什么问题?谢谢
8 月 31 日之后的一个月是 9 月 31 日,但是,由于它不存在,php 将结果强制为 1 Oktober。因此,您应该在第 1 天强制当前月份(当然,如果您只想要年份和月份):
strtotime('+1 month',strtotime(date("Y-m-1",1346389200)));
但是如果你使用 php >5.3 你可以使用更可靠的DateTime
类和方法。
您可能不应该使用时间戳strtotime
来进行比较。由于夏令时、闰年等原因,您将引入问题。最好使用 DateTime 和 DateInterval 类/函数以更彻底的方式执行此操作。