【发布时间】:2013-03-26 13:41:01
【问题描述】:
好吗?
我正在尝试在这里打一个计算日期,但是我没有得到..
会发生以下情况:
$AtualMenos3 = date("m-d-Y", strtotime("2013-03-31 -3 month"));
$AtualMenos2 = date("m-d-Y", strtotime("2013-03-31 -2 month"));
$AtualMenos1 = date("m-d-Y", strtotime("2013-03-31 -1 month"));
$AtualMes = date("m-d-Y", strtotime("2013-03-31"));
正确的应该是:
03-31-2013
02-28-2013
01-31-2013
12-31-2012
但是,这个 php 计算日期错误,因为当月份是二月(只有 28 天)时,计算出错..
实际输出:
03-31-2013
03-03-2013
01-31-2013
12-31-2012
有谁知道我该如何解决这个问题?因为这很复杂..我没有想法...我什么都想不出来:\
【问题讨论】:
-
不应该
2013-03-31 -3 month给2012-12-31吗?也许strtotime不像你期望的那样工作?或许更强大的解决方案是将数据拆分为多个部分:日、月和年,然后从月中减去 3。 -
Strtotime 不适用于数学运算,请使用 DateTime::add 或 sub()
-
你也可以试试 date('m-d-Y', strtotime('-1 month', strtotime('2013-03-31')))
-
我尝试使用DataTime,但还是同样的错误;
-
@Amit,我试过你说的方法,但它是一样的..
标签: php date datetime strtotime