我的区域设置是:
短日期格式:dd / mm / yyyy,长日期格式dd MMMM yyyy
为什么
var d = new Date("8/10/2009")
alert(d.toLocaleDateString());
2009年8月10日呕吐
或
var d = new Date("15/10/2009");
2010年3月10日呕吐
答案 0 :(得分:3)
系统从8月10日开始的日期应该是显而易见的,即使你还没有明白原因。但是,从“2009年10月10日”开始,它不太容易理解它是如何“2010年3月10日”的。所以如果你错过了它:
假设Date对象已经决定使用“M / d / y”格式,因此第一部分(15)是月份。它会如何处理?会发生什么,它从年份开始,并建立日期“1/1/2009”。它然后进入第15个月,给你2010年3月。加上10天,然后你去。
对于它的“为什么”,请注意您必须调用toLocaleDateString()
才能以特定的语言环境格式输出它。但是你的new Date()
在任何地方都没有类似的提及。所以它只是使用它不变的内置文化。
答案 1 :(得分:1)
试试这个。
var myDate=new Date();
myDate.setFullYear(2010,0,14);