javascript - Webkit 日期解析

标签 javascript parsing webkit date jquery-ui-datepicker

<分区>

Possible Duplicate:
Safari JS cannot parse YYYY-MM-DD date format?

我有一个简单的函数来计算日期之间的天数。

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 中它返回 int 值。

知道为什么会这样吗?我正在使用 jQuery UI 日期小部件来获取 YYYY-MM-DD 格式,但我认为这与它没有任何关系。

谢谢!

最佳答案

我认为 Date.parse 方法不一致(实际格式因各种浏览器、JS 引擎版本等而异)。我习惯用下面的方法在JavaScript中对日期进行各种操作(比较举例):

  1. 以某种方式获取日期的组成部分(在您的情况下,您可以将字符串拆分为“-”)。
  2. 使用上一步中的组件构建日期。
  3. 使用 getTime() 方法比较日期的 unix 时间戳。

代码如下:

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');
}

关于javascript - Webkit 日期解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6847040/

相关文章:

ios - 如何在 Safari 浏览器上获取 WebRTC 日志

javascript - Angular ng-repeat <li> 字符串换行

javascript - parseInt() 的最大基数?

javascript - Highcharts (Highstock) : Get data from external CSV, 无法正确显示日期

css - 通过 CSS 的 SVG 背景图像未在 webkit 浏览器中显示

javascript - Chrome 无法正确实现 getElementsByClassName : cannot use multiple classes

javascript - Jquery 计数计时器

javascript - 为什么这个 javascript 数组打印出 0?

javascript - 在reactjs es6文件中导入css脚本时出现意外的 token 非法错误

parsing - Haskell 中的 Monadic Parse 论文中的示例