繁体   English   中英

如何将JavaScript日期作为“本地时间”提取,然后将其转换为UTC,反之亦然?

[英]How to ingest javascript date as 'local time' then convert it to UTC and vice versa?

我有以下功能:

var input = "December 25, 2018 01:02:20";
var fmt = 'MMMM DD, YYYY HH:mm:ss';
var currentTimeZone = "utc";

function convertUtcToLocalViceVersa() {
  console.log(input);
  var m = moment.utc(input, fmt);
  if(currentTimeZone == 'utc') {
    input = m.local().format(fmt);
    currentTimeZone = "local";
  } else {
    input = m.utc().format(fmt);
    currentTimeZone = "utc";
  }
}

在我的HTML中,有一个按钮调用函数convertUtcToLocalViceVersa();。

我看到的问题是,按下按钮说了5次后。输入似乎没有像我想要的那样“在utc和本地之间来回切换”。 我如何才能做到这一点?

注意:我想确保每次单击按钮时,都使用“输入”文本,而不是引用矩对象。

问题是您始终使用moment.utc在UTC模式下解析input

如果使用基于currentTimeZone值的moment() (本地模式)或moment.utc (UTC模式)分支,则必须在内部移动解析代码。

这是一个现场样本:

 var input = "December 25, 2018 01:02:20"; var fmt = 'MMMM DD, YYYY HH:mm:ss'; var currentTimeZone = "utc"; function convertUtcToLocalViceVersa() { console.log(input); // var m = moment.utc(input, fmt); if(currentTimeZone == 'utc') { var m = moment.utc(input, fmt); input = m.local().format(fmt); currentTimeZone = "local"; } else { var m = moment(input, fmt); input = m.utc().format(fmt); currentTimeZone = "utc"; } console.log(input); } 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.min.js"></script> <button onclick="convertUtcToLocalViceVersa()">Convert</button> 

本地,UTC和偏移量指南是非常有用的指南,可帮助您了解矩分析的工作原理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM