Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.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 给定一个Date对象,我如何获得这个原始日期的另一个Date对象(或其时间戳),但在特定时区的上午9:00?_Javascript_Timezone - Fatal编程技术网

Javascript 给定一个Date对象,我如何获得这个原始日期的另一个Date对象(或其时间戳),但在特定时区的上午9:00?

Javascript 给定一个Date对象,我如何获得这个原始日期的另一个Date对象(或其时间戳),但在特定时区的上午9:00?,javascript,timezone,Javascript,Timezone,我有一个日期对象,比如: const d = new Date('2014-12-01T12:00:00Z'); const timezoneName = 'America/New_York'; 我有一个时区名称,比如说: const d = new Date('2014-12-01T12:00:00Z'); const timezoneName = 'America/New_York'; 创建另一个日期对象(或仅获取其UTC时间戳)的优雅方式是什么?该对象的日期相同,但在时区的上午9:

我有一个日期对象,比如:

const d = new Date('2014-12-01T12:00:00Z');
const timezoneName = 'America/New_York';
我有一个时区名称,比如说:

const d = new Date('2014-12-01T12:00:00Z');
const timezoneName = 'America/New_York';
创建另一个日期对象(或仅获取其UTC时间戳)的优雅方式是什么?该对象的日期相同,但在时区的上午9:00(按timezoneName)

我可以使用
toLocaleString
d
转换为字符串,然后处理该字符串,然后将其转换回最新版本,但我认为这不是一个非常优雅的解决方案

我不介意使用moment.js


提前谢谢:)

好吧,我想这一款适合我:

const moment = require('moment-timezone');

const d = new Date('2014-12-01T12:00:00Z');
moment(d).tz(timezoneName).set({hour: 9, minute: 0, second: 0, millisecond: 0}).valueOf()

这回答了你的问题吗@RyanWilson谢谢,但没有。正如我在问题中提到的,我对字符串不感兴趣,但对Date对象或其时区不感兴趣,我不想将其转换为字符串作为过程的一部分。如果您通读该帖子上的答案,有一些可以利用
时刻
和其他选项。非常感谢!但所有这些都会回答或操作字符串或返回字符串。但我想我刚刚找到了一个好的解决办法。我感谢你的帮助
moment(new Date()).tz(timezoneName)
可以是
moment.tz(timezoneName)
(或者
moment.tz(input,timezoneName)
,以适合您的原始代码)。但同时,对于新的项目,你们应该优先考虑现在。“时刻”处于传统模式。(不,你还不能用
Date
来解决这个问题。最终,你会解决这个问题的。)