如何使用时刻“抵消”日期/时间

时间:2017-02-25 00:21:56

标签: javascript momentjs

我有一个带日期的输入框(用户选中)。我想使用moment.js来抵消时区选择的日期,例如'Europe / London'。所以,让我们说我的日期是(2017年2月24日),我如何得到时间给我这样的日期:

当前日期时间是2/24/2017 4:18:00

所以我希望它返回2/25/2017 12:18:00这是英格兰伦敦的当前时间?

var x = moment().tz(dateStart, 'London/Europe').format();

但它现在只是给我一个约会时间。

感谢。

2 个答案:

答案 0 :(得分:0)

确保您还要加载时区数据,例如moment-timezone-with-data-2010-2020.js将其包括在2010年至2020年期间。

解析字符串时应该包含要解析的格式,否则解析器就是猜测。

'伦敦/欧洲'不是有效的IANA timezone identifier,首先是区域,然后是城市,所以:



console.log(moment('2/24/2017','MM/DD/YYYY').tz('Europe/London').format());

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.11/moment-timezone-with-data-2010-2020.js"></script>
&#13;
&#13;
&#13;

请注意,当您只解析一个日期时,时间组件将根据主机系统时区设置设置为当天午夜的本地午夜,即本地00:00:00。

答案 1 :(得分:0)

你基本上试图获得特定时区的当前时间 你做的几乎正确,但我认为没有必要通过日期,因为moment()构造函数将获得您所在位置的当前日期时间,并且您正在尝试错误的时区字符串正确 - “欧洲/伦敦”

my current time in India now - 
moment().format('DD MM YYYY HH:MM:SS');
"08 03 2017 11:03:27"

for London time zone
moment().tz('Europe/London').format('DD MM YYYY HH:MM:SS');
"08 03 2017 05:03:34"