Javascript Webkit日期解析
可能重复:Javascript Webkit日期解析,javascript,parsing,webkit,date,jquery-ui-datepicker,Javascript,Parsing,Webkit,Date,Jquery Ui Datepicker,可能重复: 我有一个简单的函数来计算从日期到日期之间的天数 function checkDias(){ str1 = $('#salida').val(); str2 = $('#regreso').val(); difference = Math.floor(( Date.parse(str2) - Date.parse(str1) ) / 86400000); if (diferencia > 0) { } else { console
我有一个简单的函数来计算从日期到日期之间的天数
function checkDias(){
str1 = $('#salida').val();
str2 = $('#regreso').val();
difference = Math.floor(( Date.parse(str2) - Date.parse(str1) ) / 86400000);
if (diferencia > 0) { } else {
console.log(difference); console.log(str1); console.log(str2);
// alert the user....
}
}
我这样做是为了检查第二个日期是否在第一个日期之后。在Firefox中,这可以正常工作,但在Webkit(Safari或Chrome)中则不行。str1和str2很好地登录到控制台,但是Webkit中的差异var返回NaN,而FF中的差异var返回int值
知道为什么会这样吗?我使用jQueryUI日期小部件获取和YYYY-MM-DD格式,但我认为这与它无关
谢谢 我认为Date.parse方法不一致(不同浏览器、JS引擎版本等的实际格式不同)。我习惯使用以下方法在JavaScript中对日期进行各种操作(例如比较):
var d1Parts = s1.split('-'),
d2Parts = s2.split('-'),
d1 = new Date(d1Parts[0], d1Parts[1]-1, d1Parts[2]),
d2 = new Date(d2Parts[0], d2Parts[1]-1, d2Parts[2]);
if ( d1.getTime() < d2.getTime() ) {
console.log('the first date is before the second');
}
var d1Parts=s1.split('-'),
d2Parts=s2.拆分('-'),
d1=新日期(d1Parts[0],d1Parts[1]-1,d1Parts[2]),
d2=新日期(d2Parts[0],d2Parts[1]-1,d2Parts[2]);
if(d1.getTime()
这个小函数修复了Webkit和IE的Date.parse:
我测试了它,现在Webkit和IE按照预期解析了日期 请参阅:在调用
日期
构造函数时,您需要在月份部分减去1,而不是相加(月份是以零为基础的)。另外,为了比较时间戳,您不需要通过比较if(d1
the来显式调用getTime
方法,Christian,谢谢您的评论。