为什么 ColdFusion 使用相同的函数以不同的方式格式化日期

Why does ColdFusion Format Dates Differently using the same function

考虑以下代码:

<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

问题一:为什么两个日期的月份互换了。 (month/day)。规范说创建日期是 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   --->

日期比较 "April 15, 2015" "December 8, 2014" returns 1

日期比较 "April 15, 2015" "August 12, 2014" returns 1