我今天在这里发帖,因为我在使用Javascript在mysql中存储Datetime时遇到了问题。我存储的日期时间,我可以在Phpmyadmin中看到与我通过查询获得的日期时间不同(选择)
我认为这是一个与时区相关的问题,但我不知道如何解决这个问题。我试图在 UTC 中节省时间
UTC_TIMESTAMP()
但我仍然没有得到正确的日期时间。
我存储日期时间:
connection.query("UPDATE `users` SET `last_disconnect` = now() WHERE `users`.`uuid` = ?", [userId])
(我试图创建一个新的Javascript日期并存储它,但它是一样的)
这是存储的日期时间(我可以在Phpmyadmin中看到的日期时间):
2019-06-04 21:19:39
这是我的查询:
connection.query("SELECT last_disconnect FROM users WHERE uuid=?", [userId])
这是我通过查询得到的:
2019-06-04T20:19:39.000Z
这是我用这个创建新日期时得到的:
console.log(new Date(dateFromRequest))
->
Tue Jun 04 2019 22:19:39 GMT+0200 (heure d’été d’Europe centrale)
我想在Javascript中获取的日期时间是存储在Mysql中的日期时间:
2019-06-04 21:19:39
我的时区是GMT +2
当我在Mysql中检查日期时间时,它显示时区+0200
有人知道我正在做的事情有什么问题吗?
提前谢谢你!
mysqljs - 连接选项#日期字符串
执行不带日期字符串的查询
connection.query('SELECT * FROM user', function (error, results, fields) {
if (error) throw error;
console.log(results[0].registerDate)
});
输出
_> node index.js
2018-06-04T20:13:17.000Z
执行相同的查询,但使用日期字符串
const connection = mysql.createConnection({
user: 'root',
password: '1234',
database: 'test',
dateStrings: true // yo, im here
});
输出
_> node index.js
2018-06-04 23:13:17
简单示例
connection.query('SELECT * FROM user', function (error, results, fields) {
if (error) throw error;
results.map(x => {
const date = new Date(x.registerDate);
console.log(date.getFullYear())
})
});
输出
_> node index.js
2018