我发现在PHP中使用"date“函数和"strtotime”有一个奇怪的问题。
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月)?
提前感谢
发布于 2021-04-30 02:37:10
您将在4月29日echo date('M Y', strtotime('-2 months'))测试此函数。它将返回2021年2月29日-一个不存在的日期,所以它默认为2月的最后一天(28),然后加1得到3月1日。
..。我在这里有一个解决方案,但与你下面的解决方案相比,它有点麻烦,所以我为了你的解决方案而删除了它
发布于 2021-04-30 02:57:46
这为我解决了这个问题:
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>";谢谢你的帮助!
发布于 2021-04-30 03:40:04
这很简单
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>"; https://stackoverflow.com/questions/67323201
复制相似问题