Javascript本地到UTC时间转换差两个小时

Javascript local to UTC time conversion off by two hours

本文关键字:小时 两个 转换 UTC 时间 Javascript      更新时间:2023-09-26

我试图将日期从本地转换为午夜UTC,以便我可以保存到SQL数据库中,并能够通过匹配日期进行查询。例如,如果今天是2015年9月20日,在我可能所在的任何时区的任何时间,那么我应该以2015年9月20日,0:00am UTC结束时间戳,但我最终得到的是2015年9月20日,2:00am UTC,无论我将时钟设置为哪个时区。这应该很简单,但由于某种原因,当我转换到UTC时,我最终差了两个小时,所以我删除了7200秒来得到午夜。这似乎是工作,但因为我不知道为什么我两个小时后,我担心我可能会遇到问题。我的代码如下,只有4行。如有任何帮助,不胜感激。

var date = new Date();
date.setUTCFullYear(date.getFullYear(), date.getMonth(), date.getDate());
date.setUTCHours(0,0,0,0);
dateUTC = date.getTime()/1000-7200;

目前还不清楚到底是什么不起作用,但你应该使用Date.UTC(),它会起作用:

var date = new Date();
alert(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate())/1000)

要消除时区差异,您可以尝试:

date.setMinutes(date.getMinutes() - date.getTimezoneOffset())