我正在使用 mysqljs从 sql
获得结果后,我得到了不同的 TimeStamp
格式,如下所示:
created_at: Sat Jul 16 2016 23:52:54 GMT+0430 (IRDT)
但它在 mysql 上是:
2016-07-16 23:52:54
我想得到那个,而不是其他格式,我如何在 mysql 连接或 sql 命令上设置这种格式?
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'a',
database: 'signal'
});
connection.query(command, function (err, rows) {
if (err) throw err;
console.log(rows);
});
最佳答案
我建议处理行而不是尝试更改 MySQL 输出结果。这样您的数据库将拥有有关 created_date
的详细完整数据。而客户端(其他功能、系统、项目等)将从数据库中检索到的值格式化为他们需要的任何格式。此外,您将通过您的系统保持一致的日期返回结果。无论执行什么数据库查询,您的软件都将始终期望返回相同的格式。
这里有一个 ES6 的例子,同样使用 moment.js 库来简化你将要进行的任何日期操作,强烈推荐使用这个库。
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'a',
database: 'signal'
});
function formatDate(date) {
return moment(date).format('YYYY-MM-DD HH:mm:ss');
}
connection.query(command, (err, rows) => {
if (err) {
throw err;
}
rows = rows.map(row => ({
...row,
created_date: formatDate(row.created_date)
}));
console.log(rows);
});
更新 或在 ES5 中
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'a',
database: 'signal'
});
function formatDate(date) {
return moment(date).format('YYYY-MM-DD HH:mm:ss');
}
connection.query(command, function(err, rows) {
if (err) {
throw err;
}
rows = rows.map(function(row) {
return Object.assign({}, row, { created_date: formatDate(row.created_date) });
});
console.log(rows);
});
关于javascript - Nodejs mysql 获取正确的时间戳格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38422524/