我的语言环境设置是:
短日期格式 : 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 日
我的语言环境设置是:
短日期格式 : 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 日
系统从何处获取 8 月 10 日的日期应该很明显,即使您还不知道原因。但是要理解它是如何从“2009 年 10 月 15 日”变成“2010 年 3 月 10 日”的就不那么容易了。因此,如果您错过了它:
暂时假设 Date 对象已经决定它使用“M/d/y”格式,所以第一部分 (15) 是月份。它将如何处理?发生的情况是它从年份开始并建立日期“2009 年 1 月 1 日”。然后它前进到第 15 个月,给您 2010 年 3 月。加上 10 天,就可以了。
对于它的“为什么”,请注意您必须调用toLocaleDateString()
以使其以您的特定语言环境格式输出。但是您new Date()
在任何地方都没有类似地提及语言环境。所以它只是使用它不变的内置文化。
试试这个。
var myDate=new Date();
myDate.setFullYear(2010,0,14);