当前位置:  开发笔记 > 编程语言 > 正文

Javascript Date()构造函数不起作用

如何解决《JavascriptDate()构造函数不起作用》经验,为你挑选了2个好方法。

我有一个问题 -

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更好的方法.



1> matt b..:

Date对象的定义是为month字段使用值0-11 .

我相信使用String的构造函数是依赖于系统的(更不用说依赖于区域设置/时区),所以你可能最好使用构造函数来指定年/月/日作为单独的参数.

BTW,在Firefox中,

new Date("04/02/2008");

对我来说很好 - 它会解释斜线,但不能解释连字符.我认为这证明了我的观点,即使用String构造Date对象是个问题.改为使用月/日/年的显式值:

new Date(2008, 3, 2);



2> joedotnot..:

确实很好的伎俩,我刚刚发现了困难的方式(通过思考).但我用连字符更自然的日期字符串:-)

var myDateArray = "2008-03-02".split("-");
var theDate = new Date(myDateArray[0],myDateArray[1]-1,myDateArray[2]); 
alert(theDate);

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有