我有一个问题 -
javascript Date("mm-dd-yyyy")
构造函数不适用于FF.它适用于IE.
IE:new Date("04-02-2008")
=>"Wed Apr 2 00:00:00 EDT 2008"
FF2:new Date("04-02-2008")
=>Invalid Date
所以我们试试另一个构造函数.试试这个构造函数Date("yyyy", "mm", "dd")
IE:new Date("2008", "04", "02");
=>"Fri May 2 00:00:00 EDT 2008"
FF:new Date("2008", "04", "02");
=>"Fri May 2 00:00:00 EDT 2008"
IE:new Date("2008", "03", "02");
=>"Wed Apr 2 00:00:00 EDT 2008"
FF:new Date("2008", "03", "02");
=>"Wed Apr 2 00:00:00 EDT 2008"
因此Date("yyyy", "mm", "dd")
构造函数使用索引0
来表示January.
有没有人处理过这个?
必须有一个比从月份中减去1更好的方法.
Date对象的定义是为month
字段使用值0-11 .
我相信使用String的构造函数是依赖于系统的(更不用说依赖于区域设置/时区),所以你可能最好使用构造函数来指定年/月/日作为单独的参数.
BTW,在Firefox中,
new Date("04/02/2008");
对我来说很好 - 它会解释斜线,但不能解释连字符.我认为这证明了我的观点,即使用String构造Date对象是个问题.改为使用月/日/年的显式值:
new Date(2008, 3, 2);
确实很好的伎俩,我刚刚发现了困难的方式(通过思考).但我用连字符更自然的日期字符串:-)
var myDateArray = "2008-03-02".split("-"); var theDate = new Date(myDateArray[0],myDateArray[1]-1,myDateArray[2]); alert(theDate);