在 ColdFusion 中我可以看到下面的代码,但它似乎不起作用。我想确保仅当有效的起始日期和截止日期在范围内时才应用折扣,请参见下文。
if (
DATEDIFF("d", discount.ValidFrom(), now()) >= 0
AND
DATEDIFF("d", now(), discount.ValidTo()) <= 0
){
// ALL OK Accept Discount
}
else
{
// Discount is no Longer Valid boo!
}
最佳答案
试试这个:
Today = Int(Now());
if ( Today GTE Int(discount.ValidFrom())
AND Today LTE Int(discount.ValidTo())
)
{
// discount is valid
}
else
{
// no longer valid
}
它之所以有效,是因为日期时间基本上只是数字 - 整数/整数部分是天数,小数/小数部分是时间。
因此应用 Int
函数会将日期时间转换为全天日期,然后您可以进行简单的数字比较以确保它在范围内。
我发现这比 DateDiff
更具可读性和理解性东西 - 事物的顺序没有混淆,我认为这是您提供的代码片段的问题(您已经切换了顺序和 lte/gte;您只想更改其中之一)。
关于coldfusion - 检查日期是否在两个日期之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7728514/