gpt4 book ai didi

coldfusion - dateDiff 返回错误值

转载 作者:行者123 更新时间:2023-12-02 20:23:39 27 4
gpt4 key购买 nike

我有一个名为 date1 的变量,其中包含使用 parseDateTime 生成的 ColdFusion 日期/时间对象。当我转储变量时,我得到 {ts '2014-12-20 15:46:57'}

我有另一个名为 date2 的变量,其中包含由 dateConvert("local2utc",now()) 生成的另一个 ColdFusion 日期/时间对象。当我转储变量时,我得到 {ts '2014-12-20 15:49:40'}

但是当我执行dateDiff("s",date1,date2)时,我得到-21436,这秒数太多了。有人能解释为什么会发生这种情况吗?我认为这可能是时区问题,但我无法解决这个问题。

重现代码

<cfset dtString = "Saturday, December 20, 2014 05:07:30 PM">

<cfset dtObject = parseDateTime(dtString)>

<cfdump var="#dtObject#">

<cfset utcNow = dateConvert("local2utc",now())>

<br><br><cfdump var="#utcNow#">

<br><br><cfdump var="#dateDiff("s",dtObject,utcNow)#">

最佳答案

此问题的原因似乎是由于 https://bugbase.adobe.com/index.cfm?event=bug&id=3338974 中描述的错误造成的。 .

如上述 URL 中所述,从 DateConvert("local2Utc",now()) 返回的变量似乎带有从本地到 UTC 的偏移量。当您使用该变量进行任何操作(包括 cfqueryparam)时,您返回的值会偏离偏移量(即返回到您传入的值)。

解决方法似乎是在转换后将日期转换为字符串。我为此创建了一个简单的包装函数,如下所示:

<cffunction name="local2utc" output="no">
<cfargument name="date">

<cfreturn dateConvert("local2utc",arguments.date).toString()>

</cffunction>

关于coldfusion - dateDiff 返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27581907/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com