将 MySql 日期时间戳转换为 JavaScript 的日期格式

2021-11-20 00:00:00 datetime jquery javascript mysql

有谁知道我如何获取 MySQL datetime 数据类型值,例如 YYYY-MM-DD HH:MM:SS 并对其进行解析或转换在 JavaScript 的 Date() 函数中工作,例如:- Date('YYYY, MM, DD, HH, MM, SS);

Does anyone know how I can take a MySQL datetime data type value, such as YYYY-MM-DD HH:MM:SS and either parse it or convert it to work in JavaScript's Date() function, for example:- Date('YYYY, MM, DD, HH, MM, SS);

谢谢!

推荐答案

这里给出的一些答案要么过于复杂,要么就是行不通(至少,不是在所有浏览器中).如果你退后一步,你会看到 MySQL 时间戳的每个时间分量的顺序与 Date() 构造函数所需的参数相同.

Some of the answers given here are either overcomplicated or just will not work (at least, not in all browsers). If you take a step back, you can see that the MySQL timestamp has each component of time in the same order as the arguments required by the Date() constructor.

所需要的只是对字符串进行非常简单的拆分:

All that's needed is a very simple split on the string:

// Split timestamp into [ Y, M, D, h, m, s ]
var t = "2010-06-09 13:12:01".split(/[- :]/);

// Apply each element to the Date function
var d = new Date(Date.UTC(t[0], t[1]-1, t[2], t[3], t[4], t[5]));

console.log(d);
// -> Wed Jun 09 2010 14:12:01 GMT+0100 (BST)

公平警告:这假设您的 MySQL 服务器正在输出 UTC 日期(这是默认值,如果字符串没有时区组件,则建议使用).

Fair warning: this assumes that your MySQL server is outputting UTC dates (which is the default, and recommended if there is no timezone component of the string).

相关文章