我有一个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()
在返回约会时使用的时区?
答案 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日格林威治标准时间午夜)以来的毫秒数。它们使用getDay
和getMonth
之类的方法,使用JavaScript引擎的本地时区,以及使用UTC的getUTCDay
和getUTCMonth
等函数(松散地,GMT)
如果要解析字符串,则需要确保该字符串的格式为Date
知道如何解析。规范中唯一的已定义的格式是a simplified derivative of ISO-8601,但它只是在ES5中添加了,如果字符串上没有时区指示符,那么它们在规范中就会出现错误,所以你需要确保总是有一个时区指示器(目前,ES6将修复它,最终引擎将可靠地使用ES6行为)。这些字符串看起来像这样:
"2015-03-27T09:32:54.427Z"
您可以使用toISOString
方法生成该格式。