gpt4 book ai didi

ruby-on-rails - 使用 between 时的奇怪行为?日期方法

转载 作者:数据小太阳 更新时间:2023-10-29 07:49:10 26 4
gpt4 key购买 nike

打开 Rails 控制台并输入:

2.weeks.ago.between? 2.weeks.ago, 1.week.ago

它给你的是真还是假?不是真的,多试几次,它会给你不同的答案。

现在,我认为因为我们正在比较 2.weeks.ago 和 2.weeks.ago,评估这两个语句之间的时间导致了这种行为。

我不能肯定地说,但我猜是介于两者之间?方法不包含在内,因此如果两个语句之间经过几毫秒,上面的代码将评估为 true,因为它将在两个比较的日期之间。

但是,如果 CPU 设法足够快地处理这个问题,以至于可以忽略耗时,那么它将评估为 false。

任何人都可以阐明这一点吗?在这可能很关键的系统中,这充其量只是一种边缘情况,但当我的测试似乎随机通过和失败时,这让我很头疼。

奇怪的是,在执行以下操作时不会发生这种情况:

 Date.yesterday.between? Date.yesterday, Date.tomorrow

最佳答案

原因无疑是时间函数的解析问题。有时 2.weeks.ago 的两个实例解析为同一时间,有时则不同。当您使用昨天时,您看不到这个问题,因为它总是解析为零小时而不是相对于当前时间。

在像您这样的情况下,您可能只想比较日期,而不是日期和时间。

关于ruby-on-rails - 使用 between 时的奇怪行为?日期方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/431230/

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