【发布时间】:2016-04-20 15:48:03
【问题描述】:
我知道这似乎是一个直截了当的问题 - 但尽管 Moment.js 和 moment timezone 是获取/设置和格式化日期的非常强大的工具..
我在将应用程序捕捉到单个时区时遇到问题。
我想要的是让用户从日期/时间选择器中进行选择 - 并将其作为 UTC 中的 unix 时间戳发送。但日期/时间选择器必须被视为 BST。
换句话说,即使您是从国外使用该网站,您选择的日期/时间也应该是您在英国选择的 UTC 值。
var local = moment(dateTime).unix();
var london = moment(dateTime).tz('Europe/London').unix();
var berlin = moment(dateTime).tz('Europe/Berlin').unix();
所有 3 个变量将等于同一台机器上的 SAME UTC 时间戳,但在另一台运行在不同时区的机器上的时间戳不同。
想一想...如果我的日期/时间是周六下午 3 点...伦敦的 UTC 与柏林的 UTC 不同,因为它会比柏林早一小时。
如何强制将日期/时间视为特定时区?
谢谢:-)
【问题讨论】:
-
您在很大程度上混淆了术语。 UTC 在任何地方都是相同的。它不会因时区而改变。当地时间改变,但不是 UTC。关于您提供的代码,您需要显示
dateTime的示例值。是字符串、数组、日期对象、时刻对象等吗? -
^Matt 在这里提出了一个很好的观点。请记住,unix 时间戳始终是 UTC。我认为您想要伦敦时间,而不是 UTC。
标签: javascript datetime momentjs