Javascript 如何获取UTC(从我的服务器)和浏览器UTC日期之间的差异?
以下是我尝试过的: 请注意,expirationDate来自我的服务器,而nowUtc来自浏览器。我希望他们会是一样的,但看起来他们不是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
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();有点奇怪为什么这被否决了。就我所能理解的,它为所问问题提供了最直接的解决办法。