且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2023-02-03 15:44:26

这里给出的一些答案要么过于复杂,要么就是行不通(至少,不是在所有浏览器中).如果你退后一步,你会看到 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).