我在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中的对象?
答案 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。