首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >2月和strtotime

2月和strtotime
EN

Stack Overflow用户
提问于 2013-03-26 21:41:02
回答 3查看 3.1K关注 0票数 1

好吧?

我正试着在这里计算一个日期,但是我没有得到..

发生的情况如下:

代码语言:javascript
复制
$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"));

正确的答案应该是:

代码语言:javascript
复制
03-31-2013
02-28-2013
01-31-2013
12-31-2012

然而,这个php计算日期是错误的,因为当月是2月份(只有28天)时,计算就会出错。

实际输出:

代码语言:javascript
复制
03-31-2013
03-03-2013
01-31-2013
12-31-2012

有人知道我是怎么解决这个问题的吗?因为这很复杂..。我没主意了..。我想不出任何东西:\

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-26 22:00:01

代码语言:javascript
复制
    $datetime = new DateTime('2013-03-31');
    $datetime->modify('-1 month');
    echo $datetime->format('Y-m-t') . "<br>";
    $datetime->modify('-1 month');
    echo $datetime->format('Y-m-t') . "<br>";
    $datetime->modify('-1 month');
    echo $datetime->format('Y-m-t') . "<br>";

See it in action

票数 1
EN

Stack Overflow用户

发布于 2013-03-26 21:44:21

查找一个月的最后一天的解决方法是:

代码语言:javascript
复制
 $lastDay = date("m-d-Y",(strtotime('next month',strtotime(date("m-01-Y"))) - 1)); 

希望这能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2013-12-31 10:50:04

如果你想坚持使用strtotime(),你可以很容易地计算出一个月的最后一天,方法是从下一个月减去一天。

代码语言:javascript
复制
echo date("m-d-Y", strtotime("Apr 2013 -1 day")); // yields 03-31-2013
echo date("m-d-Y", strtotime("Mar 2013 -1 day")); // yields 02-28-2013
echo date("m-d-Y", strtotime("Feb 2013 -1 day")); // yields 01-31-2013
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15638540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档