如何使用MomentJS将日期转换为时间戳?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (8693)

我使用MomentJS使用以下方式将本地日期转换为UTC日期:

$("#div1").text(moment("2016-10-11 18:06:03").tz("Europe/Paris").format());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.6/moment-timezone-with-data.min.js"></script>

<div id="div1"></div>

现在,我需要使用MomentJS的输出值的时间戳。

提问于
用户回答回答于

你说:

我使用MomentJS使用以下方式将本地日期转换为UTC日期: moment("2016-10-11 18:06:03").tz("Europe/Paris").format()

那不是那样的。将本地值转换为巴黎时间,并将其作为ISO8601格式的字符串发出。

现在我需要使用MomentJS从输出值中获取时间戳。

这是一个不同的问题,不会涉及上述的输出,因为:

  1. 你不能从输出字符串中获取时间戳,你可以从一个moment对象中获取它。你可以解析那个字符串,但是因为你之前已经有了一个moment对象,所以这很愚蠢。
  2. 时间戳是基于UTC的,因此时区转换无关紧要。如果你根本没有转换,你会获得相同的时间戳。

可以使用.format('X').format('x')取决于想要的精度来获取带有时间戳的字符串。但是使用.valueOf()或者.unix()再次取决于精度来获得数字时间戳要清晰得多。

用户回答回答于
moment().format("X"); // lowercase 'x' for miliseconds

var date = moment('2016-10-11 18:06:03').tz('Europe/Paris').format(),
    timestamp = moment(date).format("X");

$('#div1').text(date);
$('#timestamp').text(timestamp);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.6/moment-timezone-with-data.min.js"></script>

<div id="div1"></div>
<div id="timestamp"></div>

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动