繁体   English   中英

strtotime 'next month' 未按预期运行(即今天)

[英]strtotime 'next month' not acting as expected (today that is)

到目前为止,这仅在 31 日发生

echo date('F',strtotime('this month')); //May
echo date('F',strtotime('next month'));//July
echo date('F',strtotime('+1 month'));//July

据我了解,六月是在五月之后。 但我猜 php 只是从现在开始增加 31 天,跳过整整一个月。

无论长度如何,我怎样才能安全地获得下个月? 理想情况下使用 strttotime

编辑忘了提,为什么我希望使用 strtotime 是因为我正在使用搜索框来查找解释用户输入 strtotime 的事件

最健壮的方法可能是:

date('F', mktime(0, 0, 0, date('n') + 1, 1))

您还可以使用:

echo date('Y-m-d', strtotime("first day of -1 month")); 

这是因为 PHP 处理日期的方式中的日期溢出。 它只是将月份增加 1。没有 6 月 31 日,所以它通过添加一天然后将其放入 7 月来解决它。 尝试将其转换为月份的第一天,然后增加月份。

这是一个错误,但由于它的方式和存在多长时间,它被标记为 wontfix。 https://bugs.php.net/bug.php?id=66988

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM