【发布时间】:2012-10-02 14:14:32
【问题描述】:
又把我的头发拉出来了……
我需要以天为单位计算两个日期之间的差异。我正在这样做:
<cfset d = DateDiff("d", Dateformat( active_apps.app_base_coupon_start, "dd.mm.yyyy"), Dateformat( variables.useDate, "dd.mm.yyyy") )>
active_apps.app_base_coupon_start = 27.07.2012 和 variables.useDate = 今天 = 02.10.2012。
我转储了这两个值,它们都可以。然而,dateDiff 在我寻找时返回-168(7 月 4 天,8 月 31 天,9 月 30 天,10 月 2 天)67 天。
问题:
有人可以阻止我失去剩余的头发并告诉我我在这里做错了什么,或者是否有更简单的方法可以在几天内获得差异?
编辑:
好的,它也可以这样工作:
<cfif DateAdd("d", active_apps.app_grace_time, Dateformat( active_apps.app_base_coupon_start, "dd.mm.yyyy") ) GT now()>
<cfdump output="e:\s\page\t\dump.txt" label="catch" var="YUP">
<cfelse>
<cfdump output="e:\s\page\t\dump.txt" label="catch" var="NOPE">
</cfif>
但我还是想知道,为什么 dateDiff 返回奇怪的值。
【问题讨论】:
-
复制了您的代码,将您的日期变量替换为字符串“27.07.2012”和“02.10.2012”并得到 67。您的变量是否包含不同的值或不同类型的值?
-
嗯。等一下。我的转储说:
27.07.2012和02.10.2012 -
让我再检查一次。必须是带有变量的东西。
-
我认为您的日期掩码混淆了 02.10.2012 的月份和日期。 27.07.2012 和 10.02.2012 之间的差异是 -168 天
-
ColdFusion 将
27.07.2012解释为 2012 年 7 月 27 日,但02.10.2012很可能会解释为 2 月 10 日 - 我猜这取决于您的语言环境。
标签: date coldfusion datediff