我迷路了,我可以检查一下非世界协调时的时间和事情的工作。但是当转换到UTC时代时,CFIF不起作用
非UTC {ts '2019-11-10 14:59:46'} {ts '2019-11-10 14:00:00'}
UTC if {ts '2019-11-10 21:59:46'} {ts '2019-11-10 21:00‘}
我迷路了..。好像想不出来。
<cfset timenow = #Now()#>
<cfset utimenow = dateConvert("Local2UTC", timenow)>
<cfset admintime = #DateAdd("h", -1, chk.stime)#>
<cfset uadmintime = #DateAdd("h", -1, chk.utcact)#>chk.stime和chk.utc时间是正确的。从根本上说,这是取消窗口的休息时间。
这些是创建的时间戳。
NON UTC {ts '2019-11-10 14:59:46'} LTE {ts '2019-11-10 14:00:00'}NonUTC邮票是没有UTC转换的时间戳。
UTC if {ts '2019-11-10 21:59:46'} LTE {ts '2019-11-10 21:00:00'} NonUTC邮票
<cfif timenow LTE admintime>
This one works fine...
NON UTC {ts '2019-11-10 14:59:46'} LTE {ts '2019-11-10 14:00:00'}
Then allow cancel
<cfelse>
This cfelse is activated properly and Can't Cancel.
Can't Cancel
</cfif>
UTC Stamps
<cfif utimenow LTE uadmintime>
This one does not work
UTC if {ts '2019-11-10 21:59:46'} LTE {ts '2019-11-10 21:00:00'}
Then allow cancel
This UTC Time does not activate properly and allows the cancel.
Executes/Activates inside the cfif - it should not
<cfelse>
Can't Cancel
</cfif>我也尝试过转换,以确保ODBCTime
<cfset uadmintime = createODBCDateTime(uadmintime)>最后,我不得不重新创建“时代”,并对这种格式进行比较。它现在与<cfif timenow LTE admintime>和DateCompare同时工作,如下所示。这一定是不喜欢{ts '2019-11-10 14:59:46'} LTE {ts '2019-11-10 14:00:00'}格式的格式化问题。
<cfset nctime = '#dateformat(uadmintime, "dd-MM-yyyy")# #timeformat(uadmintime, "hh:mm:ss")#'>
<cfset nutctime = '#dateformat(utimenow, "dd-MM-yyyy")# #timeformat(utimenow, "hh:mm:ss")#'>发布于 2019-11-11 13:52:23
ColdFusion是一种松散类型的语言,可以在各种数据类型中保存日期/时间值。标准比较(如eq、lte等)根据未知和更改的规则比较不同类型的变量,因此如果CF决定转换为不同的数据类型,则可能会产生意外的结果。有时,您希望变量是一个日期/时间对象,而实际上是一个传递日期验证的字符串。CF、Lucee等的不同版本可以采取不同的行动,或者取决于所涉及的实际值。
我建议总是在比较日期时使用dateCompare() .
https://cfdocs.org/datecompare
<cfif utimenow LTE uadmintime>
...
</cfif>变成了
<cfif dateCompare(utimenow, uadmintime) lte 0>
...
</cfif>示例代码:
https://stackoverflow.com/questions/58793435
复制相似问题