我没能找到解决这个问题的正确方法.正如您在 PHP文档中的示例#3中看到的那样,他们使用DateTime :: add中的DateInterval声明了 one must beware when adding months.

对于为什么方法的行为是这样的以及我可以做些什么来避免这种情况,我没有任何解释,我发现这是一个错误.

有人对此有所了解吗?

问题是每个月可能有不同的天数.问题是,当您想将日期增加1个月时,您正在做什么.根据PHP文档,如果您在1月31日(或30日)并且您添加1个月,那么预期的行为是什么?

二月只有29天.你想成为这个月的最后一天吗?如果这是您正在寻找的,或者基于当前日期的静态日期,您通常会在一定天数内增加安全性.当你增加月份时不知道你想要完成什么,很难说如何观察错误.

编辑:
正如有人在上面提到的Mike B评论的类似帖子中提到的那样,你可能想要做一些事情(在伪代码中):

1) Use cal_days_in_month() for the next month and save that number to a variable x
 2) If x >= current billing dob,increment and be done
 3) DateTime::modify('last day')  (havent used this before but something along these lines) to set the date to the last date of the next month (set it to the 1st of the next month,then last day?)

值得注意的是,如果您在此处使用变量作为新的结算值,您将清除原始值.我会保存一个额外的DB值,即“第一个开票日期”或者只是“billing_day_of_month”或者其他东西,然后使用它来计算出你应该关注的那个月的日期

php – 使用DateInterval和DateTime :: add添加月份时会出现什么问题?的更多相关文章

  1. ios – NSDate得到上周,上个月的问题

    我需要从当前日期开始获得上一个礼拜.所以我找到了可以重新计算当前日期添加间隔的解决方案这个参数:[[NSDatedate]dateByAddingTimeInterval:-604800.0](前一周)[[NSDatedate]dateByAddingTimeInterval:-2629743.83](取得上个月)正如我想,为了让周,这种方法运行良好,没有任何问题,因为每周有七天,间隔没有改变.但

  2. php – 使用DateInterval和DateTime :: add添加月份时会出现什么问题?

    问题是每个月可能有不同的天数.问题是,当您想将日期增加1个月时,您正在做什么.根据PHP文档,如果您在1月31日并且您添加1个月,那么预期的行为是什么?二月只有29天.你想成为这个月的最后一天吗?

  3. 使用Java 8计算两个日期之间的天数,同时忽略一周中的某些天

    原始图像方法>只需计算两个日期之间的天数.>使用循环计算天数,忽略一周中的某些天.>计算天数.再次,但没有循环.完整代码解决方法如果我们谈论Java8API,为什么不使用Java8功能…

  4. 如何计算C#中的两个日期之间的天数减去星期日?

    我正在创建图书馆管理系统.我使用时间戳来计算日期差异,并在日期差异的帮助下,我也在计算Fine.现在这个日期差异包括一周中的所有日子.但是对于图书馆申请,罚款应仅在周内收取6天.我不能这样做任何人都可以帮我执行这项任务吗?

  5. ios – 如何计算核心数据中的天数?

    我需要计算最后一天的日子,但是不知道该怎么做.例如我得到这样的核心数据:我试着检查最后没有呈现(isPresent=0)的日期,直到今天,并获得了________,所以我可以算几天,这很容易.但是如果我标记为second2-14asisPresented=1(如下表中所示),我将得到最后一个没有显示的是,2,但是不正确的是没有数据,此日期应为0,条纹应从此日期算起我搜索了不同的算法,用于缺少日期的

  6. javascript – 使用jQuery将数字(天)转换为日,月和年

    我有一个计算功能,其中的一部分显示了实现目标所需的天数.而不是仅显示我想要计算的天数和天数几个月或几天,几个月和几年,取决于数量.我有一个if语句的分裂,但似乎无法解决数学从例如132天到x天x个月…

  7. Perl:通过转换为秒来计算天数

    我试图计算从数据库中提取的两个日期之间的日历天数.我认为将日期转换为秒将是一个简单而正确的解决方案.最初,我认为这种方法为我提供了可靠的结果:显然,日期之间的日历日期数应该是整数.嗯,我做错了什么?为什么转换为秒不可靠?由于我是一个Perl新手,我可能会忽略这一点.因此,非常欢迎任何帮助.解决方法一种方法是使用Time::Piece核心模块:

  8. 计算java中两个日期之间的天数

    到期日为2016-06-30,当前日期为2016-06-27解决方法原因是,您没有使用相同的时间格式减去两个日期.使用Calendar类将日期的时间更改为00:00:00,您将获得几天的确切差异.JimGarrison’answer中的更多解释

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部