3

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

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

4

4 回答 4

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

这是一个很好的课程,可以按月等进行比较。

于 2013-07-17T17:39:30.647 回答
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);
于 2012-07-03T11:36:37.203 回答
1

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

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

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

于 2012-07-03T11:21:16.143 回答
1

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

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

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

于 2013-03-21T15:32:17.980 回答