Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.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/mysql/69.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 处理偏移量更改以正确显示日期_Javascript_Mysql_Datetime_Timezone Offset - Fatal编程技术网

Javascript 处理偏移量更改以正确显示日期

Javascript 处理偏移量更改以正确显示日期,javascript,mysql,datetime,timezone-offset,Javascript,Mysql,Datetime,Timezone Offset,我正在做一个项目,我需要显示一个时间戳。我以UTC格式保存数据库中的时间。假设我所在区域的偏移量为-4小时(假设我在夏令时),所以当我将时间输入DB时,它会提前4小时输入。现在是冬天,偏移量为-3小时。当我从数据库中提取信息并将其更改回标准时间时,时间只增加了3小时,而不是4小时。因此,所有项目的显示时间都比应显示的时间早一小时。因此,我的问题是-有一种方法可以知道某个区域的确切偏移量,该区域在信息输入DB时是?因为您从UTC日期和时间开始,所以可以使用with选项获取特定区域的时区偏移量 例如

我正在做一个项目,我需要显示一个时间戳。我以UTC格式保存数据库中的时间。假设我所在区域的偏移量为-4小时(假设我在夏令时),所以当我将时间输入DB时,它会提前4小时输入。现在是冬天,偏移量为-3小时。当我从数据库中提取信息并将其更改回标准时间时,时间只增加了3小时,而不是4小时。因此,所有项目的显示时间都比应显示的时间早一小时。因此,我的问题是-有一种方法可以知道某个区域的确切偏移量,该区域在信息输入DB时是?

因为您从UTC日期和时间开始,所以可以使用with选项获取特定区域的时区偏移量

例如

函数getOffset(s,位置){ 让getTz=lang=> 新的国际日期时间格式(lang{ 时区:位置,时区名称:'short' }).FormatTopParts(新日期)。减少((附件,部分)=>{ 如果(part.type==“timeZoneName”){ acc.tz=零件价值; }返回acc; },Object.create(null)).tz; 让offset=getTz('en'); 返回(/\d/.test(offset)?offset:getTz('fr'))。替换(/^[a-z]+/i'); } 让我们='2020-10-27T00:16:25.867Z'; log(`At${s}这些位置的偏移量是:`); [“美国/纽约”, “欧洲/巴黎”, “澳大利亚/布罗克山”, “太平洋/阿皮亚”, “太平洋/查塔姆”
].forEach(loc=>console.log(`${loc}:${getOffset(s,loc)}')是,但它需要了解数据集整个历史中日光偏移的历史更改。。。像这样。或者您可以将偏移量与UTC值一起存储在数据库中。如果偏移量为-4,则UTC为4小时后,而不是更早。中的时区选项用于为特定位置创建时间戳。要使用的规则是使用指定的,例如Pacific/Kwajalein。