gpt4 book ai didi

ruby-on-rails - 为什么 Date.today - 6.months + 6.months != Date.today?

转载 作者:数据小太阳 更新时间:2023-10-29 06:25:36 28 4
gpt4 key购买 nike

在 Ruby 中,万圣节:

Date.today - 6.months + 6.months != Date.today

我们需要更新 Ruby 的日期实现吗?其他语言有同样的问题吗?

最佳答案

如果您对没有 31 天的任何月份执行此操作,就会发生这种情况(即 3 个月就可以,但 1 个月、6 个月或 8 个月都会发生这种情况)。

如果您执行 Date.today - 1.month,看起来 Rails 认为 9/31/2011 不是有效日期,因此它会多踢一天使其生效一个有效的日期。但是,当您从 9 月底向前移动一个月时,它将保留在 2011 年 10 月 30 日,因为这是一个有效日期。基本上,Rails 只是尝试增加(或减少)月字段,只要它是有效日期,它就不会调整日字段。

解决此问题的一种方法是在 Rails 中的 Date 对象上使用 .end_of_month(或 .beginning_of_month)方法来使确保您始终获得月底或月初。

关于ruby-on-rails - 为什么 Date.today - 6.months + 6.months != Date.today?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7957107/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com