目前的写法
function setTime(duration){
var bTime = $('#startTime').val();
if(bTime==''){
alert('请输入开始时间');
return;
}else{
var later = new Date(bTime);
later.setDate(later.getDate()+parseInt(duration));
return later.Format("yyyy-MM-dd hh:mm:ss");
}
}
该方法在IE下出现NaN,搜索未果。望老手帮助。
Q群里聊过了。主要是你的$('#startTime')文本格式问题。
然后我才记起原来解析时间格式上浏览器有的格式是不支持的。
这里解释一下你的思路,首先,你的需求是对 2014-10-01 10:00这样的字符串做解析成时间。
所以,针对这种格式,首先是 ie 对 new Date('2014-10-01')会得到NaN.
因此我们大可改成浏览器都喜欢的格式,比如 10/01/2014
这样,new Date('10/01/2014')就是你要的日期了,但是这里还有个小时和分的具体时间,
那么由上面new到的Date,假设赋给了 meDate,那么可以用meDate.setHours(hour, minute)
所以改后的代码应该差不多这样:
function setTime(duration){
var bTime = $('#startTime').val();
if(bTime==''){
alert('请输入开始时间');
return;
}else{
var timePar = bTime.split(' ');
var timeDate = timePar[0].split('-');
bTime = timeDate[1]+'/'+timeDate[2]+'/'+timeDate[0];
var later = new Date(bTime);
var timeHour = timePar[1].split(':');
later.setHours(timeHour[0], timeHour[1]);
later.setDate(later.getDate()+parseInt(duration));
return later.Format("yyyy-MM-dd hh:mm:ss");
}
}
最后,我提一下,以后涉及到时间,留意一下new Date(str)中str的格式问题哟。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。