Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.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 时区选项在Intl.DateTimeFormat()中的具体作用是什么_Javascript_Timestamp_Timezone_Utc_Gmt - Fatal编程技术网

Javascript 时区选项在Intl.DateTimeFormat()中的具体作用是什么

Javascript 时区选项在Intl.DateTimeFormat()中的具体作用是什么,javascript,timestamp,timezone,utc,gmt,Javascript,Timestamp,Timezone,Utc,Gmt,我很难理解Intl.DateTimeFormat()方法中的timeZone选项到底做了什么。我还没有找到这方面的深入资料。任何解释都将不胜感激 背景:我们需要在前端显示后端服务器的时间戳,并且时区偏移有一些问题。目前,我认为根据本地客户端时间显示正确时间的解决方案如下: 我不完全理解,为什么我需要传递选项时区:“格林威治标准时间”的“GMT”,以便在前端获得正确的时间。时区用于计算当地时间: const时区=[ “格林尼治标准时间”, “欧洲/马德里”, “亚洲/东京” ]; 常量时间戳=新

我很难理解
Intl.DateTimeFormat()
方法中的
timeZone
选项到底做了什么。我还没有找到这方面的深入资料。任何解释都将不胜感激

背景:我们需要在前端显示后端服务器的时间戳,并且时区偏移有一些问题。目前,我认为根据本地客户端时间显示正确时间的解决方案如下:


我不完全理解,为什么我需要传递选项时区:“格林威治标准时间”的“GMT”,以便在前端获得正确的时间。

时区用于计算当地时间:

const时区=[
“格林尼治标准时间”,
“欧洲/马德里”,
“亚洲/东京”
];
常量时间戳=新日期();
让我们显示日期;
用于(时区中的时区){
displayDate=Intl.DateTimeFormat('en-GB'{
小时:'数字',
分钟:'数字',
第二个:“数字”,
时区:时区
}).格式(时间戳);
console.log(“%s@%s”,显示日期,时区);

}
Date对象具有时区意识。显示日期时,出于明显的原因,需要选择时区。我不完全确定您的疑问是什么。感谢您的解释。我还有一个问题:如果我不指定时区,运行时环境将引入其时区,从而为时间添加偏移量tamp否则将对应于GMT时间(没有偏移量?)。在JavaScript中日期并不完全是这样工作的。
Date
对象指向一个精确的(绝对的)时间点(我不知道内部格式,也许这只是Unix时间,但我在猜测)。只要运行时需要生成需要(并考虑)时区时的当地时间。
Intl.DateTimeFormat('en-GB', {
          hour: 'numeric',
          minute: 'numeric',
          second: 'numeric',
          timeZone: 'GMT'
        }).format(timestamp)}