在工作过程中发现js里面实例化一个时间的时候一不小心被IE8解析成NaN了。后来发现原来IE8对时间的解析比较严格。
var date=new Date(strDate); 用这种方式实例化一个时间的时候,比如 strDate="2014-12-02 12:25:01" ,这种格式的时间IE8 下 date就是NaN,要想得到正确的时间其实很简单,只要把 strDate 中的 ‘-’ 替换成 ‘/’ 即可。即 strDate="2014/12/02 12:25:01" 。
全部替换掉字符串里面的 ‘-’ 可以用 strDate.replace(/\-/g,"\/"); 。
经过上面对 strDate 的简单处理 再用 new Date(strDate); 实例化一个日期对象时候就可以正常解析了
举个比较时间的例子:
jq页面比较时间大小
页面:
<input type="text" value="${startTime }" οnclick="WdatePicker({dateFmt:"yyyy-MM-dd"})"
class="input input-medium" name="startTime" id="startTime" placeholder="开始时间">
<input type="text" value="${endTime }" οnclick="WdatePicker({dateFmt:"yyyy-MM-dd"})"
class="input input-medium" name="endTime" id="endTime" placeholder="结束时间">
Js:
function fangfa(){
//jq获取时间
var useStartTime = $("#useStartTime").val();
var useEndTime = $("#useEndTime").val();
//转换时间
var start=new Date(useStartTime.replace("-", "/").replace("-", "/"));
var end=new Date(useEndTime.replace("-", "/").replace("-", "/"));
//比较时间
if(end < start){
alert("结束时间不可以大于开始时间");
return false;
}
}