考虑以下代码:
<cfset lateDate = createDate(2014,12,8) />
<cfset currentdate = createDate(2015,4,15) />
<cfdump var="#lateDate#" />
<cfdump var="#currentdate#" />
<cfdump var="#dateCompare(currentdate,lateDate)#" />
我机器上的输出是:
{ts '2014-12-08 00:00:00'} {ts '2015-04-15 00:00:00'} 1
问题一:为什么两个日期的月份互换。 (月日)。规范说创建日期是 yyyy,mm,dd
但 CF 切换了它们或者显示它们切换了。
它正在正确地执行 dateCompare
所以发生了什么。我是不是盯着这个看得太久了?
最佳答案
我想你已经看得太久了。这两个都是有效日期,并且月份没有切换。您的日期之一是 2015 年 4 月 15 日,另一个是 2014 年 12 月 8 日。我假设您认为那个日期是 2014 年 8 月 12 日。那么您的代码应该是 createDate(2014,8,12)
。对吧?
dateCompare
函数只告诉您第一个日期是早于还是晚于第二个日期。对于您的两个日期,正确的日期和假设的日期,第一个日期晚于第二个。
我认为代码工作正常。如:
createDate(2014,8,12) <!--- August 12, 2014 --->
createDate(2014,12,8) <!--- December 8, 2014 --->
createDate(2015,4,15) <!--- April 15, 2015 --->
dateCompare“2015 年 4 月 15 日”“2014 年 12 月 8 日”返回 1
dateCompare“2015 年 4 月 15 日”“2014 年 8 月 12 日”返回 1
关于date - 为什么 ColdFusion 使用相同的函数以不同的方式格式化日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29659908/