0

我在 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 的星期一日期。

此警报NaN-N..在 Win XP IE8 上返回给我,在非常旧的 mac 上,我发现它是对象的问题。如何获取日期值并将其转换为javascript中的对象?

4

3 回答 3

2

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

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

于 2013-03-25T16:16:05.627 回答
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;
    }
于 2013-03-25T16:16:09.727 回答
0

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

于 2013-06-03T07:48:39.853 回答