使用moment.js将日期转换为UTC

use*_*816 64 javascript momentjs

可能很容易回答这个但我似乎无法找到一种方法让moment.js以毫秒为单位返回UTC日期时间.这是我在做的事情:

var date = $("#txt-date").val(),
    expires = moment.utc(date);
Run Code Online (Sandbox Code Playgroud)

知道我做错了什么吗?

Mat*_*int 82

这可以在文档中找到.有了类似于时刻的图书馆,我恳请您阅读完整的文档.这非常重要.

假设输入文本是根据用户的本地时间输入的:

 var expires = moment(date).valueOf();
Run Code Online (Sandbox Code Playgroud)

如果指示用户实际输入UTC日期/时间,则:

 var expires = moment.utc(date).valueOf();
Run Code Online (Sandbox Code Playgroud)

  • 编辑 - 删除"轻松".:) (18认同)
  • 如果我已经有时区的时间日期 - 如何将其转换为UTC? (6认同)
  • 这不起作用.这只会改变日期使用的方法,而不是日期本身. (2认同)
  • @Colleen-是的,但是通常会调用其中的一种方法,例如`.format()`,它会发出UTC值。它不能自己更改内部日期值,因为“日期”已经在跟踪UTC时间戳了。始终只是调用它的方法来确定是发出UTC还是本地时间。在这方面的时刻是相同的。 (2认同)

Bru*_*sma 35

我使用这种方法并且有效.ValueOf对我不起作用.

moment.utc(yourDate).format()
Run Code Online (Sandbox Code Playgroud)

  • 这里有一些可疑的东西。我正在使用 moment.js 版本。2.17.1 如果 'yourdate' 是 '2017-10-14T21:00:00Z' (en-us) 那么上面的代码片段返回完全相同的结果 '2017-10-14T21:00:00Z' 显然不是UTC,因为我现在是 gmt+3。正确的结果将是“2017-10-15T00:00:00+03:00”,您可以通过“moment(yourDate).format()”获得此结果。 (3认同)
  • 这符合文档.将本地时间转换为UTC. (2认同)

nap*_*i15 6

作为 : moment.js version 2.24.0

假设您有本地日期输入,这是dateTimeTime输入转换为UTC 的正确方法

var utcStart = new moment("09:00", "HH:mm").utc();
Run Code Online (Sandbox Code Playgroud)

或指定日期

var utcStart = new moment("2019-06-24T09:00", "YYYY-MM-DDTHH:mm").utc();
Run Code Online (Sandbox Code Playgroud)

如您所见,结果输出将以UTC返回:

//You can call the format() that will return your UTC date in a string 
 utcStart.format(); 
//Result : 2019-06-24T13:00:00 
Run Code Online (Sandbox Code Playgroud)

但是,如果您执行以下操作,它将不会转换为UTC:

var myTime = new moment.utc("09:00", "HH:mm"); 
Run Code Online (Sandbox Code Playgroud)

您仅将输入设置为utc时间,就好像您提到myTime是UTC一样,....输出将是9:00


soo*_*han 5

这将是答案:

moment.utc(moment(localdate)).format()
Run Code Online (Sandbox Code Playgroud)
localdate = '2020-01-01 12:00:00'

moment(localdate)
//Moment<2020-01-01T12:00:00+08:00>

moment.utc(moment(localdate)).format()
//2020-01-01T04:00:00Z
Run Code Online (Sandbox Code Playgroud)