JavaScript日期到MySQL日期时间转换
我有一个js date变量JavaScript日期到MySQL日期时间转换,javascript,mysql,date,datetime,Javascript,Mysql,Date,Datetime,我有一个js date变量 var date = "2017-01-23T10:17:50.285Z"; 我已将其存储在MySQL表中,列的类型为DATETIME 在数据库中存储后,表中的值如下所示: var mysqlFormate = new Date(date).toISOString().slice(0, 19).replace('T', ' '); 现在,当我尝试使用此列名从数据库中获取记录时,我是这样做的: var mysqlFormate = new Date(date).t
var date = "2017-01-23T10:17:50.285Z";
我已将其存储在MySQL表中,列的类型为DATETIME
在数据库中存储后,表中的值如下所示:
var mysqlFormate = new Date(date).toISOString().slice(0, 19).replace('T', ' ');
现在,当我尝试使用此列名从数据库中获取记录时,我是这样做的:
var mysqlFormate = new Date(date).toISOString().slice(0, 19).replace('T', ' ');
其输出为2017-01-23 10:17:50
问题
您可以看到数据库中存储的值与转换后的值不同(2017-01-23 15:47:50
和2017-01-23 10:17:50
不同)
因此,我无法使用此列从数据库中获取数据
我在这里可能犯的错误是什么?谢谢。检查如何在SQL Server上设置时区信息(或遵循约定) 在 将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);
}
函数formatLocalDate(){
var now=新日期(),
tzo=-now.getTimezoneOffset(),
dif=tzo>=0?'+':'-',
pad=函数(num){
var norm=Math.abs(Math.floor(num));
返回值(范数<10?'0':'')+norm;
};
现在返回。getFullYear()
+“-”+pad(now.getMonth()+1)
+“-”+pad(现在是.getDate())
+'T'+pad(now.getHours())
+“:”+pad(now.getMinutes())
+“:”+pad(now.getSeconds())
+dif+衬垫(tzo/60)
+“:”+pad(tzo%60);
}
有一个明确的5h30m,因此我假设您正在将GMT转换(或忘记)为IST偏移量。为了以JS显示本地时间,有
Date.UTC()
函数,它告诉浏览器您将要给出的日期是以UTC表示的,浏览器将应用所需的转换并将其显示为本地时间
function getLocalTime(mysqlDate) {
var dateTime = mysqlDate.split(' ');
var date = dateTime[0].split('-');
var time = dateTime[1].split(':');
var utc = Date.UTC(date[0], date[1], date[2], time[0], time[1], time[2]);
return new Date(utc);
}
可能是时区问题。客户端和服务器之间的时间差正好为5小时30分。服务器通常应保持在UTC。尝试使用
Date.UTC()在客户端显示时间