有没有一种简单的方法可以将sql dateTime与javascript日期时间进行比较,以便可以轻松比较两者?
是否内置了javascript函数,因为我无法编辑sql
答案 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