【发布时间】:2018-05-16 19:34:24
【问题描述】:
昨天我遇到了一个问题,PHP 的 strtotime 没有正确添加一个月。在 '2011-05-31' 我跑了:
date('Y-m-d',strtotime( '+1 month', strtotime('now')));
当我期待“2011-06-30”时返回“2011-07-01”。
MySQL 这样做没有任何问题。
我不想重新发明轮子,因为根据我的经验,日期计算很容易出错。
对于 PHP 5.1,是否有人为此提供可靠且经过测试的解决方案?
【问题讨论】:
-
您是否设置了正确的语言环境?
-
如果你想在 PHP 中获得更好的覆盖率,php.net/datetime 类将是值得冒险的事情。
-
这个问题接受的答案看起来应该可以解决您的问题:stackoverflow.com/questions/5760262/…
-
这是 100% 正确的,它增加了 1 个月,但 6 月只有 30 天,因此第 31 天是 8 月 1 日。简要回答我不久前提出的问题:stackoverflow.com/questions/3602405/…
-
DateTime 对象是 PHP 5.2,我特地要求一个 PHP 5.1 的解决方案。我的语言环境设置为正确的时区。