我有一个C#应用程序,它在JSON中返回身份验证令牌的到期日期,如下所示:
"expirationDate":"Fri, 27 Mar 2015 09:12:45 GMT"
在我的TypeScript中,我检查日期是否仍然有效:
isAuthenticationExpired = (expirationDate: string): boolean => {
var now = new Date().valueOf();
var exp: any = Date.parse(expirationDate).valueOf();
return exp - now <= 0;
};
我想知道的是new Date()
在返回日期时使用哪个时区?
4条答案
按热度按时间ac1kyiln1#
JavaScript将使用客户端的本地时间,但它也有UTC/GMT方法。
JavaScript Date对象支持许多UTC(通用)方法以及本地时间方法。UTC也称为格林尼治标准时间(GMT),是指由世界时间标准设置的时间。本地时间是执行JavaScript的计算机已知的时间。
虽然可以使用UTC和本地时区的方法访问日期和时间,但日期和时间存储在本地时区中:
参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
ou6hu8tu2#
默认情况下,JS将使用您的浏览器时区,但如果您想更改显示,您可以使用例如
toString()
函数;)g52tjvyc3#
正如其他人所说,JavaScript使用客户端的系统时间,但您可以从服务器时间创建日期对象,因此每个客户端都将获得相同的当前时间。
它只在页面加载时起作用。如果你想稍后检查日期是否仍然有效,那么你需要每隔几秒钟将当前日期与服务器日期同步一次。
k4ymrczo4#
Javascript new Date()使用哪个时区?
Date
对象处理自纪元(1970年1月1日午夜GMT)以来的毫秒数。它们有getDay
和getMonth
等使用JavaScript引擎的本地时区的方法,还有getUTCDay
和getUTCMonth
等使用UTC(不严格地说,GMT)的函数。如果你正在解析一个字符串,你需要确保这个字符串的格式是
Date
知道如何解析的。规范中唯一的defined格式是ISO-8601的简化衍生物,但它只在ES 5中添加,他们在规范中错误地指出了如果字符串上没有时区指示符应该发生什么。所以你需要确保它上面总是有一个时区指示符(现在,ES6会修复它,最终引擎会可靠地使用ES6的行为)。可以使用
toISOString
方法生成该格式。