coldfusion - 检查日期是否在两个日期之间

标签 coldfusion coldfusion-9

在 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/

相关文章:

oracle - Coldfusion cfquery 返回插入的 oracle rowid

datetime - 时间格式 - Coldfusion 9

tomcat - 使用tomcat将所有htm文件重定向到cfm

coldfusion - 应用程序变量未持久化

jquery - 使用 jquery 显示 ajax 响应

hibernate - ColdFusion ORM 可以处理 Unicode 字符串吗?

google-chrome - Chrome 忽略了我的警报框中的单词

coldfusion - 将 ColdFusion 连接到 Google Bigquery

java - Coldfusion XOR 从 java 翻译而来

javascript - 来自 AJAX 请求的 Post 参数在 ColdFusion 的表单范围内未定义