Как преобразовать дату в временную метку с помощью MomentJS?

Я использовал 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>

Ответ 1

Вы сказали:

Я использовал 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() получить числовую метку времени с помощью .valueOf() или .unix(), опять же, в зависимости от точности.

Ответ 2

moment().format("X"); // lowercase 'x' for milliseconds

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>

Ответ 3

Чтобы узнать время от даты, используйте метод formatjs

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

console.log(date);
console.log(moment(date).format("X"));
console.log(moment(date).format("x")); // for milliseconds
console.log(moment(date).format("HH:mm"));
console.log(moment(date).format("hh:mm A"));
<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>