在Actionscript 3中,dateUTC和monthUTC具有不同的索引范围。
使用2015年10月12日的日期,Date
var day:int = new Date().dateUTC
//trace = 12
var month:int = new Date().monthUTC
//trace = 9
dateUTC
的范围是1-31。
monthUTC
的范围是0-11
为什么dateUTC从1开始,monthUTC从0开始?
答案 0 :(得分:1)
为什么"在ActionScript 3"?因为它是ECMAScript standard for Date objects的一部分。为什么在ECMAScript?可能只是因为那是Brendan Eich thought made sense when he came up with Javascript。
答案 1 :(得分:1)
它背后也有一个逻辑,天是真正的数字而几个月不是。日历表示带数字的天数,并将月份称为字符串。例如,您从未听过第4个月,但您确实听到过第6天。由于AS3日期不提供月份名称,因此它仅提供从0到11的索引,因为日期是数字日期从1到n正确地提供它们。在这里,它背后还有另一个逻辑,即语言。日期中未提供名称(如月份名称),因为支持所有语言会很痛苦。相反,你使用月份索引来显示任何语言的月份(编码器提供的那些),另一方面,由于它们是数字,所以不需要它们。
您会在大多数语言中看到类似的模式,因为提供月份名称很麻烦,因此您可能会获得0到11之间的索引。