首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ColdFusion UTC时间LTE检查与NonUTC时间

ColdFusion UTC时间LTE检查与NonUTC时间
EN

Stack Overflow用户
提问于 2019-11-10 22:13:24
回答 1查看 208关注 0票数 1

我迷路了,我可以检查一下非世界协调时的时间和事情的工作。但是当转换到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‘}

我迷路了..。好像想不出来。

代码语言:javascript
复制
<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时间是正确的。从根本上说,这是取消窗口的休息时间。

这些是创建的时间戳。

代码语言:javascript
复制
NON UTC {ts '2019-11-10 14:59:46'} LTE {ts '2019-11-10 14:00:00'}

NonUTC邮票是没有UTC转换的时间戳。

代码语言:javascript
复制
UTC if {ts '2019-11-10 21:59:46'} LTE {ts '2019-11-10 21:00:00'} 

NonUTC邮票

代码语言:javascript
复制
<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

代码语言:javascript
复制
<cfset uadmintime = createODBCDateTime(uadmintime)>

最后,我不得不重新创建“时代”,并对这种格式进行比较。它现在与<cfif timenow LTE admintime>DateCompare同时工作,如下所示。这一定是不喜欢{ts '2019-11-10 14:59:46'} LTE {ts '2019-11-10 14:00:00'}格式的格式化问题。

代码语言:javascript
复制
<cfset nctime = '#dateformat(uadmintime, "dd-MM-yyyy")# #timeformat(uadmintime, "hh:mm:ss")#'>
<cfset nutctime = '#dateformat(utimenow, "dd-MM-yyyy")# #timeformat(utimenow, "hh:mm:ss")#'>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-11 13:52:23

ColdFusion是一种松散类型的语言,可以在各种数据类型中保存日期/时间值。标准比较(如eqlte等)根据未知和更改的规则比较不同类型的变量,因此如果CF决定转换为不同的数据类型,则可能会产生意外的结果。有时,您希望变量是一个日期/时间对象,而实际上是一个传递日期验证的字符串。CF、Lucee等的不同版本可以采取不同的行动,或者取决于所涉及的实际值。

我建议总是在比较日期时使用dateCompare() .

https://cfdocs.org/datecompare

代码语言:javascript
复制
<cfif utimenow LTE uadmintime>
    ...
</cfif>

变成了

代码语言:javascript
复制
<cfif dateCompare(utimenow, uadmintime) lte 0>
    ...
</cfif>

示例代码:

https://cffiddle.org/app/file?filepath=e3d24147-8a25-44ff-a98d-5b1e686cd619/d6115113-eead-4214-bc94-13eb7f0456f5/efad9206-b082-4940-bf5d-f4c5001ae2ec.cfm

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58793435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档