时刻 Js UTC 到本地时间

新手上路,请多包涵

我正在尝试将 UTC 时间转换为当地时间。我一直在关注这个链接中的这个例子:http: //jsfiddle.net/FLhpq/4/light/ 。我似乎无法获得正确的本地输出。例如,如果它的上午 10:30 在这里,而不是得到 10:30 生病得到 15:30。这是我的代码:

var date = moment.utc().format('YYYY-MM-DD HH:mm:ss');

var localTime  = moment.utc(date).toDate();

localTime = moment(localTime).format('YYYY-MM-DD HH:mm:ss');

console.log("moment: " + localTime);

无论我做什么,时间总是在 UTC 时间出现。我住在休斯顿,所以我知道时区是问题所在。我已按照链接中的代码进行操作,但似乎可以获取当地时间。我究竟做错了什么?

原文由 brian Scroggins 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 590
1 个回答

要将 UTC 时间转换为本地时间,您必须使用 moment.local()

有关详细信息,请参阅 文档

例子:

 var date = moment.utc().format('YYYY-MM-DD HH:mm:ss');

console.log(date); // 2015-09-13 03:39:27

var stillUtc = moment.utc(date).toDate();
var local = moment(stillUtc).local().format('YYYY-MM-DD HH:mm:ss');

console.log(local); // 2015-09-13 09:39:27

演示:

 var date = moment.utc().format();
console.log(date, "- now in UTC");

var local = moment.utc(date).local().format();
console.log(local, "- UTC now to local");
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>

原文由 axon 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题