有没有一种简单的方法可以将 sql dateTime 与 javascript 日期时间进行比较,以便可以轻松地比较两者?
是否有内置的 javascript 函数,因为我无法编辑 sql
有没有一种简单的方法可以将 sql dateTime 与 javascript 日期时间进行比较,以便可以轻松地比较两者?
是否有内置的 javascript 函数,因为我无法编辑 sql
假设日期字符串来自 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
这是一个很好的课程,可以按月等进行比较。
要将 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);
您如何在 javascript 中访问 sql 日期时间。我假设你有它作为一个字符串。内置的 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