将sql日期与javascript日期进行比较

时间:2012-07-03 11:13:21

标签: javascript jquery

有没有一种简单的方法可以将sql dateTime与javascript日期时间进行比较,以便可以轻松比较两者?

是否内置了javascript函数,因为我无法编辑sql

4 个答案:

答案 0 :(得分:5)

假设日期字符串来自SQL:

>>> new Date('2012-11-10 15:16:17')
Date {Invalid Date}

>>> new Date('2012-11-10T15:16:17')
Date {Sat Nov 10 2012 15:16:17 GMT+0100}

>>> new Date('2012-11-10 15:16:17'.replace(' ', 'T'))
Date {Sat Nov 10 2012 15:16:17 GMT+0100}

您可以通过附加偏移来处理来自任何时区的输入,例如伦敦时间:

>>> new Date('2012-11-10 15:16:17'.replace(' ', 'T') + '+00:00')
Date {Sat Nov 10 2012 16:16:17 GMT+0100}

要比较JavaScript中的两个日期,只需将它们减去以毫秒为单位返回差异:

>>> var d1 = new Date('2012-11-10T15:16:17'); var d2 = new Date('2012-11-10T15:16:18'); d2 - d1
1000

Here's a nice class按月比较等。

答案 1 :(得分:3)

将MySQL DATETIME字符串转换为JavaScript Date对象:

        var sqlDateStr = "2012-01-02 23:58:59"; // as for MySQL DATETIME
        sqlDateStr = sqlDateStr.replace(/:| /g,"-");
        var YMDhms = sqlDateStr.split("-");
        var sqlDate = new Date();
        sqlDate.setFullYear(parseInt(YMDhms[0]), parseInt(YMDhms[1])-1,
                                                 parseInt(YMDhms[2]));
        sqlDate.setHours(parseInt(YMDhms[3]), parseInt(YMDhms[4]), 
                                              parseInt(YMDhms[5]), 0/*msValue*/);
        alert(sqlDate);

答案 2 :(得分:1)

如何在javascript中访问sql datetime。我假设你把它作为一个字符串。内置的js Date.parse()函数可以解析各种字符串并返回一个js Date对象。

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/parse

如果以自定义格式返回sql日期,则需要手动将其分解为相关的年,月,日,小时,分钟,秒组件,并使用适当的Date()构造函数汇编Date对象。

答案 3 :(得分:1)

修复parseInt(08)和parseInt(09),使用parseInt(08,10)parseInt(09,10)。

在Javascript中,从零开始的数字被认为是八进制,并且八进制中没有08或09,因此存在问题。

http://www.ventanazul.com/webzine/articles/issues-parseint-javascript