javascript日期对象使用输入中的字符串创建

时间:2013-03-25 16:10:23

标签: javascript date

我在IE8和一些旧版浏览器中遇到了日期对象的问题。在网站上我输入隐藏,我保留日期,更改后新日期应该在该字段中。

在我的机器上一切都很好,但在其他一些我得到NaN-NaN-NaN,这是我的代码:

var date = new Date($('#curDate').val());
//date.setDate(date.getDate() - 7);
var dateMsg = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate();
alert(dateMsg);

当我运行此文件(php)时,在隐藏的输入中我已经从2013-03-25的当前星期一获得了星期一。

此警报在Win XP IE8上返回NaN-N..,在非常旧的Mac上,我重新解决了对象的问题。如何获取日期值并将其转换为javascript中的对象?

3 个答案:

答案 0 :(得分:2)

永远不要使用new Date(some_string) - 它不可靠,因为它取决于用户的语言环境。

自己将字符串分解为yy/mm/dd个组件,然后调用new Date(y, m - 1, d)

答案 1 :(得分:1)

连字符问题..

  

使用斜杠('/')

转换连字符(' - ')
var dateStr=$('#curDate').val();
var a=dateStr.split(" ");
var d=a[0].split("-");
var t=a[1].split(":");
var date = new Date(d[0],(d[1]-1),d[2],t[0],t[1],t[2]);

var date=new Date(convertToSlash($('#curDate').val()));

    function convertToSlash(string){
      var response = string.replace(/-/g,"/");
      return response;
    }

答案 2 :(得分:0)

您还可以使用新的Date(some_string)格式。这很可靠。但是,日期字符串必须采用ISO格式,即yyyy / mm / dd。