要解决部署项目时遇到的时区问题,我需要将当前日期以毫秒格式转换为相应的UTC日期(毫秒)。如何解决?
答案 0 :(得分:1)
尝试不同的方法后,我发现这是最有效和最有效的解决方案。
var d = new Date(); //d can be any date we need to convert.
var millisec= d.getTime()+ (d.getTimezoneOffset() * 60000);
getTimeZoneOffset()以分钟为单位返回偏移时间
修改强>:
实际上上面的代码将偏移量添加到本地日期(而不是减去),而我的服务器(即UTC)允许返回服务器上的本地时间。
我需要服务器中的本地时间,正如我后来意识到的那样,我们使用的API数据中的本地时间。
回到最初的问题,将本地转换为UTC的可能解决方案是:
var d = new Date(); //d can be any date we need to convert.
var millisec= d.getTime() - (d.getTimezoneOffset() * 60000);
在另一个项目中,后来我以字符串形式使用了以下日期:
一个。从本地转换为UTC(发送到服务器时):
new Date().toUTCString()
湾转换回本地(从服务器获取数据到网络:
date.toLocaleDateString("en-AU", {
weekday: 'short', year: 'numeric', month: 'short', day: 'numeric',
hour12: false, hour: 'numeric', minute: 'numeric', second: 'numeric'
});
答案 1 :(得分:0)
Javascript有一个功能,getTime():
function myFunction() {
var d = new Date();
var n = d.getTime();
return n;
}
答案 2 :(得分:0)
由于时区在一年中进入和离开夏令时,这是一个很大的蠕虫病毒,然后有时会在他们这样做的时候发生变化。
如果你不介意你的时间可能错误1小时,那么最简单的事情就是加上或减去你所拥有的时区和UTC之间的毫秒数差。为了做到这一点,我建议你看一下时刻时区库:http://momentjs.com/timezone/
答案 3 :(得分:0)
var myDate = new Date();
var utcDate = myDate.toUTCString();
var milliSec = utcDate.getMilliseconds();
答案 4 :(得分:0)
const utcDate = new Date().toUTCString();
// Mon, 21 Dec 2020 11:13:16 GMT
const sendToServer = Date.parse(utcDate); //1608549196000
const myLocalDate = new Date(1608549196000);
// 202000 年 12 月 22 日星期二:13:16 GMT+1300(新西兰夏令时)
谢谢!!