Javascript new Date()使用什么时区?

Ala*_*an2 11 javascript date typescript

我有一个C#应用程序,它在JSON中返回一个身份验证令牌的到期日期,如下所示:

"expirationDate":"Fri, 27 Mar 2015 09:12:45 GMT"
Run Code Online (Sandbox Code Playgroud)

在我的TypeScript中,我检查日期是否仍然有效:

isAuthenticationExpired = (expirationDate: string): boolean => {
    var now = new Date().valueOf();
    var exp: any = Date.parse(expirationDate).valueOf();
    return exp - now <= 0;
};
Run Code Online (Sandbox Code Playgroud)

我想知道的是什么时区new Date()在返回日期时会使用什么?

Gro*_*ify 10

JavaScript将使用客户端的本地时间,但它也有UTC/GMT方法.以下是来自Mozilla:

JavaScript Date对象支持许多UTC(通用)方法以及本地时间方法.UTC,也称为格林威治标准时间(GMT),是指世界时间标准设定的时间.本地时间是执行JavaScript的计算机已知的时间.

参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

  • 简单地说“它使用客户的当地时间”确实有点误导。日期对象本身(如您的链接所示)是“自 1970 年 1 月 1 日 UTC 以来的毫秒数” - 因此日期本身没有时区 - 它只是一个数字。只有当您使用 toString 显示它时,您才能看到您的时区。我还认为 getTimezoneOffset() 有点误导,因为它意味着 Date 实例知道它的时区 - 但实际上它不知道。如果我错了,请纠正我:-) (4认同)