在Windows Safari浏览器中显示的南值

时间:2013-12-23 14:30:08

标签: javascript

我的脚本在Chrome和Firefox中运行良好,但是当尝试与Safari版本5.1.7相同时,这可能是最新的Windows显示NAN值可以任何人帮助我解决这个问题我尝试了parseInt但它没有'工作。

这是我的代码;

var date1 = new Date($('#arrival').val());
var  date2 = new Date($('#departure').val());
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); 
   //parseInt("0"+$(this).html(),10) 
diffDays=parseInt(diffDays);
console.log('Selected diffDays: '+diffDays);

parseint的评论部分显示我0。

1 个答案:

答案 0 :(得分:3)

最有可能的答案是Safari不支持您从#arrival#departure字段中读取的日期格式。 JavaScript仅具有one date string format,这在兼容的实现中是必需的,并且这是相当近期的(大约三年前,从ES5开始)。 (也就是说,我从未遇到过不支持yyyy/MM/dd的浏览器,但结果日期的时区会有所不同。)

如果您将无效字符串输入new Date(),则会收到无效日期。 getTime方法返回带有无效日期的NaN,然后当然会在整个计算过程中传播(如果任何操作数为NaN,则所有数学运算符的结果为NaN

解决方案是确保字符串采用支持的格式,或者自己解析它们。还有一些图书馆需要帮助,例如MomentJS