typescript JavaScript 'new Date()'使用哪个时区?

gopyfrb3  于 2023-01-10  发布在  TypeScript
关注(0)|答案(4)|浏览(257)

我有一个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()在返回日期时使用哪个时区?

ac1kyiln

ac1kyiln1#

JavaScript将使用客户端的本地时间,但它也有UTC/GMT方法。
JavaScript Date对象支持许多UTC(通用)方法以及本地时间方法。UTC也称为格林尼治标准时间(GMT),是指由世界时间标准设置的时间。本地时间是执行JavaScript的计算机已知的时间。
虽然可以使用UTC和本地时区的方法访问日期和时间,但日期和时间存储在本地时区中:

    • 注意:**一定要记住,日期和时间是以本地时区存储的,而且获取日期和时间或其组成部分的基本方法也都是以本地时区工作的。

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

ou6hu8tu

ou6hu8tu2#

默认情况下,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
g52tjvyc

g52tjvyc3#

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

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

它只在页面加载时起作用。如果你想稍后检查日期是否仍然有效,那么你需要每隔几秒钟将当前日期与服务器日期同步一次。

k4ymrczo

k4ymrczo4#

Javascript new Date()使用哪个时区?
Date对象处理自纪元(1970年1月1日午夜GMT)以来的毫秒数。它们有getDaygetMonth等使用JavaScript引擎的本地时区的方法,还有getUTCDaygetUTCMonth等使用UTC(不严格地说,GMT)的函数。
如果你正在解析一个字符串,你需要确保这个字符串的格式是Date知道如何解析的。规范中唯一的defined格式是ISO-8601的简化衍生物,但它只在ES 5中添加,他们在规范中错误地指出了如果字符串上没有时区指示符应该发生什么。所以你需要确保它上面总是有一个时区指示符(现在,ES6会修复它,最终引擎会可靠地使用ES6的行为)。

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

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

相关问题