Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript new Date()使用的时区是什么?_Javascript_Date_Typescript - Fatal编程技术网

JavaScript new Date()使用的时区是什么?

JavaScript new Date()使用的时区是什么?,javascript,date,typescript,Javascript,Date,Typescript,我有一个C#应用程序,它在JSON中返回身份验证令牌的过期日期,如下所示: "expirationDate":"Fri, 27 Mar 2015 09:12:45 GMT" "2015-03-27T09:32:54.427Z" 在我的打字脚本中,我在此处检查日期是否仍然有效: isAuthenticationExpired = (expirationDate: string): boolean => { var now = new Date().valueOf(); v

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

"expirationDate":"Fri, 27 Mar 2015 09:12:45 GMT"
"2015-03-27T09:32:54.427Z"
在我的打字脚本中,我在此处检查日期是否仍然有效:

isAuthenticationExpired = (expirationDate: string): boolean => {
    var now = new Date().valueOf();
    var exp: any = Date.parse(expirationDate).valueOf();
    return exp - now <= 0;
};
isAuthenticationExpired=(expirationDate:string):布尔=>{
var now=新日期().valueOf();
var exp:any=Date.parse(expirationDate.valueOf();

return exp-now默认情况下,JS将使用浏览器时区,但如果您想更改显示,可以使用
toString()
函数;)

Javascript new Date()使用的时区是什么

Date
对象以自纪元(1970年1月1日格林威治标准时间午夜)起的毫秒数工作。它们有
getDay
getMonth
等方法,使用JavaScript引擎的本地时区,也有
getUTCDay
getUTCMonth
等使用UTC(不严格地说,是格林威治标准时间)的函数

如果你正在解析一个字符串,你需要确保字符串的格式是
Date
知道如何解析的。规范中唯一定义的格式是,但它只是在ES5中添加的,他们在规范中错误地理解了如果字符串上没有时区指示符会发生什么,所以你需要仔细检查e始终在其上显示时区指示器(目前,ES6将修复它,最终引擎将可靠地使用ES6行为)。这些字符串如下所示:

"expirationDate":"Fri, 27 Mar 2015 09:12:45 GMT"
"2015-03-27T09:32:54.427Z"

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

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

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

虽然可以使用方法访问UTC和本地时区中的日期和时间,但日期和时间存储在本地时区中:

注意:请务必记住,日期和时间存储在本地时区,获取日期和时间或其组件的基本方法也都在本地时区工作


参考资料:

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

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

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

如果未提供参数,构造函数将根据系统设置为当前日期和时间创建一个JavaScript日期对象。它指定时区名称。只需n
new Date()
并查看您自己,您可以使用
getTimezoneOffset()
以分钟为单位获取GMT和本地时间之间的偏移量。它仍然是最终创建的JavaScript日期对象。@Grokify:Yes,以及“在我的JavaScript中我检查…”语句仍然不正确。简单地说“它使用客户端的本地时间”确实有点误导。日期对象本身(如链接所示)是自1970年1月1日UTC以来的
毫秒数
-因此日期本身没有时区-它只是一个数字。只有当您使用toString显示它时,您才能看到您的时区。我还认为getTimezoneOffset()有点误导,因为它意味着Date实例知道它的时区,但实际上它不知道。如果我错了,请纠正我:-)而MDN页面说“Date对象使用Unix时间戳,一个整数值”,并且“JavaScript日期基本上被指定为自1970年1月1日UTC午夜以来经过的毫秒数”,它还表示“当未提供任何参数时,新创建的日期对象表示从实例化时起在本地时区中指定的当前日期和时间。”必须记住,日期和时间存储在本地时区”。