首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >奇怪的php date strtotime问题

奇怪的php date strtotime问题
EN

Stack Overflow用户
提问于 2021-04-30 02:32:01
回答 3查看 52关注 0票数 0

我发现在PHP中使用"date“函数和"strtotime”有一个奇怪的问题。

代码语言:javascript
运行
复制
echo date('m/d/Y h:i:s a', time())."<br>";       //returns 04/29/2021 12:26:30 pm
echo date('M Y', strtotime('-5 months'))."<br>"; //returns Nov 2020
echo date('M Y', strtotime('-4 months'))."<br>"; //returns Dec 2020
echo date('M Y', strtotime('-3 months'))."<br>"; //returns Jan 2021
echo date('M Y', strtotime('-2 months'))."<br>"; //returns Mar 2021
echo date('M Y', strtotime('-1 months'))."<br>"; //returns Mar 2021
echo date('M Y')."<br>";                         //returns Apr 2021

我的服务器时间是正确的,如第一行所示,但是为什么strtotime('-2个月‘)和strtotime('-1个月’)两次返回相同的值(2021年3月)?

提前感谢

EN

回答 3

Stack Overflow用户

发布于 2021-04-30 02:37:10

您将在4月29日echo date('M Y', strtotime('-2 months'))测试此函数。它将返回2021年2月29日-一个不存在的日期,所以它默认为2月的最后一天(28),然后加1得到3月1日。

..。我在这里有一个解决方案,但与你下面的解决方案相比,它有点麻烦,所以我为了你的解决方案而删除了它

票数 4
EN

Stack Overflow用户

发布于 2021-04-30 02:57:46

这为我解决了这个问题:

代码语言:javascript
运行
复制
    echo date("M Y", strtotime("-5 month", strtotime(date("F") . "1"))) . "<br>";
    echo date("M Y", strtotime("-4 month", strtotime(date("F") . "1"))) . "<br>";
    echo date("M Y", strtotime("-3 month", strtotime(date("F") . "1"))) . "<br>";
    echo date("M Y", strtotime("-2 month", strtotime(date("F") . "1"))) . "<br>";
    echo date("M Y", strtotime("-1 month", strtotime(date("F") . "1"))) . "<br>";
    echo date("M Y", time()) . "<br>";

谢谢你的帮助!

票数 0
EN

Stack Overflow用户

发布于 2021-04-30 03:40:04

这很简单

代码语言:javascript
运行
复制
echo date('m/d/Y h:i:s a', time())."<br>";     //returns 04/29/2021 12:26:30 pm
echo date('M Y', strtotime('first day of -5 months'))."<br>"; //returns Nov 2020
echo date('M Y', strtotime('first day of -4 months'))."<br>"; //returns Dec 2020
echo date('M Y', strtotime('first day of -3 months'))."<br>"; //returns Jan 2021
echo date('M Y', strtotime('first day of -2 months'))."<br>"; //returns Feb 2021
echo date('M Y', strtotime('first day of -1 months'))."<br>"; //returns Mar 2021
echo date('M Y')."<br>";  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67323201

复制
相关文章

相似问题

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