首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP日期时间:如何修改增加和减少月份?

PHP日期时间:如何修改增加和减少月份?
EN

Stack Overflow用户
提问于 2018-03-21 00:29:34
回答 2查看 0关注 0票数 0

我一直在努力工作DateTime class,最近遇到了一些我认为是个bug的问题。经过一番研究,看起来这不是一个错误,而是按预期工作。

示例#2当加或减月份时要小心

代码语言:javascript
复制
<?php
$date = new DateTime('2000-12-31');

$date->modify('+1 month');
echo $date->format('Y-m-d') . "\n";

$date->modify('+1 month');
echo $date->format('Y-m-d') . "\n";
?>

The above example will output: 2001-01-31 2001-03-03

任何人都可以证明为什么这不被视为一个错误?

此外,是否有人有任何优雅的解决方案来纠正问题,并使其成为如此+1个月将按预期工作,而不是按预期工作?

EN

Stack Overflow用户

发布于 2018-03-21 09:44:21

这可能有用:

代码语言:txt
复制
echo Date("Y-m-d", strtotime("2013-01-01 +1 Month -1 Day"));
  // 2013-01-31

echo Date("Y-m-d", strtotime("2013-02-01 +1 Month -1 Day"));
  // 2013-02-28

echo Date("Y-m-d", strtotime("2013-03-01 +1 Month -1 Day"));
  // 2013-03-31

echo Date("Y-m-d", strtotime("2013-04-01 +1 Month -1 Day"));
  // 2013-04-30

echo Date("Y-m-d", strtotime("2013-05-01 +1 Month -1 Day"));
  // 2013-05-31

echo Date("Y-m-d", strtotime("2013-06-01 +1 Month -1 Day"));
  // 2013-06-30

echo Date("Y-m-d", strtotime("2013-07-01 +1 Month -1 Day"));
  // 2013-07-31

echo Date("Y-m-d", strtotime("2013-08-01 +1 Month -1 Day"));
  // 2013-08-31

echo Date("Y-m-d", strtotime("2013-09-01 +1 Month -1 Day"));
  // 2013-09-30

echo Date("Y-m-d", strtotime("2013-10-01 +1 Month -1 Day"));
  // 2013-10-31

echo Date("Y-m-d", strtotime("2013-11-01 +1 Month -1 Day"));
  // 2013-11-30

echo Date("Y-m-d", strtotime("2013-12-01 +1 Month -1 Day"));
  // 2013-12-31
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003204

复制
相关文章

相似问题

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