如何使用Moment JS将Date转换为时间戳?

问题描述 投票:10回答:2

我使用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从输出值中获取时间戳。

javascript momentjs
2个回答
11
投票

你说:

我使用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()得到数字时间戳更加清晰,再次取决于精度。


29
投票
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.12.4/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.21/moment-timezone-with-data.min.js"></script>

<div id="div1"></div>
<div id="timestamp"></div>
© www.soinside.com 2019 - 2024. All rights reserved.