Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.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/5/date/2.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/momentjs中将UTC日期视为本地日期_Javascript_Date_Momentjs - Fatal编程技术网

在Javascript/momentjs中将UTC日期视为本地日期

在Javascript/momentjs中将UTC日期视为本地日期,javascript,date,momentjs,Javascript,Date,Momentjs,我想这个问题被问了很多次,但我找不到任何适合我需要的答案:( 假设我有以下几点: const filter='2018-08-03T00:00:00.000Z';//UTC-我从客户端获取 const timezone='-0800';//我从DB中的帐户设置中获取它 问题: 如何从这些数据中获取新日期,即:2018-08-03T08:00:00.000Z? 我尝试了不同的方法将utc转换为本地(包括momentjs),但得到的结果是:2018-08-02T16:00:00.000Z 代码示例

我想这个问题被问了很多次,但我找不到任何适合我需要的答案:(

假设我有以下几点:
const filter='2018-08-03T00:00:00.000Z';//UTC-我从客户端获取
const timezone='-0800';//我从DB中的帐户设置中获取它

问题:
如何从这些数据中获取新日期,即:
2018-08-03T08:00:00.000Z
? 我尝试了不同的方法将utc转换为本地(包括momentjs),但得到的结果是:
2018-08-02T16:00:00.000Z

代码示例

const fromDate = req.payload.date;
console.log(fromDate instanceof Date); //true
console.log(fromDate); //'2018-08-03T00:00:00.000Z'
const newDate = moment(fromDate).tz('America/Yakutat');
console.log(newDate.format()); //actual: '2018-08-02T16:00:00', expected: '2018-08-03T08:00:00'

console.log(newDate.toISOString()); //'2018-08-03T00:00:00.000Z'
我们使用的是力矩v2.12,所以我不能将toISOString()与true标志一起使用


谢谢!

看一看,你可以使用和/或你真的想改变时间或只是简单地显示在本地时区?鉴于zulu在当前和所需的示例中,我会担心你正在转换数据而不是表示…@VincenzoC我实际上是在尝试使用时刻时区,但我不理解我需要做什么的算法。如果我使用
矩(filter).tz(时区)
,我得到了相同的结果:
2018-08-02T16:00:00.000Z
@裂隙爆破我正在尝试更改日期,此日期将用于查询MongoDB,但我需要将本地时间转换为保存在mongo中的UTC,然后再进行查询。@AlexDn您为什么期望
2018-08-03T08:00:00
?我认为您的代码给出了正确的答案结果,
2018-08-03T00:00:00.000Z
(UTC)是雅库塔特的
2018-08-02T16:00:00-08:00
(参见)。