gpt4 book ai didi

JavaScript 日期到 MySQL 日期时间转换

转载 作者:行者123 更新时间:2023-11-29 19:30:34 25 4
gpt4 key购买 nike

我有一个 js 日期变量

var date = "2017-01-23T10:17:50.285Z";

我已将其存储在 MySQL 表中,并且该列的类型为 DATETIME

存储到数据库后,表中的值如下所示:

enter image description here

现在,当我尝试使用此列名称从数据库中获取记录时,我会这样做:

var mysqlFormate = new Date(date).toISOString().slice(0, 19).replace('T', ' ');

输出为2017-01-23 10:17:50

问题

您可以看到数据库中存储的值与转换后的值不同(2017-01-23 15:47:502017-01-23 10:17:50 是不同的)。

所以我无法使用此列从数据库中获取数据。

我在这里可能犯的错误是什么?谢谢。

最佳答案

检查如何在 SQL Server 上设置时区信息(或遵循约定)。

new Date(date).toISOString().slice(0, 19).replace('T', ' ')

使用以下定义将 toISOString 替换为 formatLocalDate()

function formatLocalDate() {
var now = new Date(),
tzo = -now.getTimezoneOffset(),
dif = tzo >= 0 ? '+' : '-',
pad = function(num) {
var norm = Math.abs(Math.floor(num));
return (norm < 10 ? '0' : '') + norm;
};
return now.getFullYear()
+ '-' + pad(now.getMonth()+1)
+ '-' + pad(now.getDate())
+ 'T' + pad(now.getHours())
+ ':' + pad(now.getMinutes())
+ ':' + pad(now.getSeconds())
+ dif + pad(tzo / 60)
+ ':' + pad(tzo % 60);
}

有一个明显的5h30m,所以我推测您正在将 GMT 转换(或忘记)为 IST 偏移量。

关于JavaScript 日期到 MySQL 日期时间转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41804242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com