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

时间:2015-03-27 09:28:09

标签: javascript date typescript

我有一个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 个答案:

答案 0 :(得分:8)

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

  

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

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

答案 1 :(得分:1)

默认情况下,JS会使用您的浏览器时区,但如果您想更改显示,您可以使用toString()功能;)

var d1=new Date();
d1.toString('yyyy-MM-dd');       //returns "2015-03-27" in IE, but not FF or Chrome
d1.toString('dddd, MMMM ,yyyy')  //returns "Friday, March 27,2015" in IE, but not FF or Chrome

答案 2 :(得分:1)

正如其他人所说,JavaScript使用客户端系统时间,但您可以从服务器时间创建日期对象,因此每个客户端都将获得相同的当前时间。

var date = new Date("<?php echo date("Y-m-d H:i:s");?>");

它仅适用于页面加载。如果您想稍后检查仍然有效的日期,则需要每隔几秒将当前日期与服务器日期同步。

答案 3 :(得分:0)

  

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

Date个对象使用自The Epoch(1970年1月1日格林威治标准时间午夜)以来的毫秒数。它们使用getDaygetMonth之类的方法,使用JavaScript引擎的本地时区,以及使用UTC的getUTCDaygetUTCMonth等函数(松散地,GMT)

如果要解析字符串,则需要确保该字符串的格式为Date知道如何解析。规范中唯一的已定义的格式是a simplified derivative of ISO-8601,但它只是在ES5中添加了,如果字符串上没有时区指示符,那么它们在规范中就会出现错误,所以你需要确保总是有一个时区指示器(目前,ES6将修复它,最终引擎将可靠地使用ES6行为)。这些字符串看起来像这样:

"2015-03-27T09:32:54.427Z"

您可以使用toISOString方法生成该格式。