Javascript 如何获取UTC(从我的服务器)和浏览器UTC日期之间的差异?

Javascript 如何获取UTC(从我的服务器)和浏览器UTC日期之间的差异?,javascript,Javascript,以下是我尝试过的: 请注意,expirationDate来自我的服务器,而nowUtc来自浏览器。我希望他们会是一样的,但看起来他们不是 var now = new Date(); var nowSecs = now.valueOf(); var nowUtc = new Date(now.getTime() + (now.getTimezoneOffset() * 60000)); var nowUtcSecs = nowUtc.valueOf(); v

以下是我尝试过的:

请注意,expirationDate来自我的服务器,而nowUtc来自浏览器。我希望他们会是一样的,但看起来他们不是

    var now = new Date();
    var nowSecs = now.valueOf();
    var nowUtc = new Date(now.getTime() + (now.getTimezoneOffset() * 60000));
    var nowUtcSecs = nowUtc.valueOf();
    var exp: any = Date.parse(expirationDate);
    var expSecs = exp.valueOf();

    var diffSecs = (expSecs - nowUtcSecs) / 1000;
    var diffMins = diffSecs / 60;
当我在控制台中查看时,会发现:

console.log(expirationDate)
VM2717:1 Fri, 27 Mar 2015 11:11:44 GMT

console.log(nowUtc)
VM2796:1 Fri Mar 27 2015 11:32:42 GMT+0700 (SE Asia Standard Time)

console.log (diffMins)
VM2943:1 399.0280166666667

我希望nowUtc包含UTC日期,但它仍然引用东南亚标准时间

为什么不尝试使用date.UTC()方法以UTC格式查找日期。下面是它的工作原理

{ var utc = new Date(Date.UTC(2000, 10, 5, 0,0,0))}
UTC接受的参数分别为年、月、日、小时、分、秒

有关更多详细信息,请参阅-

使用

var changeDate = new Date('yourdatehere').toISOString();

请参阅以下文档:

Date.now()方法返回自1970年1月1日00:00:00 UTC以来经过的毫秒数

然后:

Date.parse()方法解析日期的字符串表示形式,并返回自1970年1月1日00:00:00 UTC以来的毫秒数

您将获得字符串
expirationDate
表示的时间点与客户端时钟之间的秒差,其中:

difference = (Date.now() - Date.parse(expirationDate)) / 1000

你能解释一下我是如何得到“2000,10,5,0,0,0”的吗。谢谢这些只是参数,请将浏览器日期存储在变量today=new date()中。然后把一年定为今天。getYear(),月份定为今天。getMonth()等等。arachnid-你能举个例子吗?我认为你的答案如果行得通,对我和社区都会有很大帮助。这如何给我UTC日期?我的意思是我没有“yourdatehere”这个词。这就是我试图让浏览器给我的结果。var now=new Date().toISOString();有点奇怪为什么这被否决了。就我所能理解的,它为所问问题提供了最直接的解决办法。