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

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

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

要将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); 

假设日期字符串来自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 

这是一个很好的课程比较几个月等。

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

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

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

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

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

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