Asmi
Asmi

Reputation: 651

How to convert Date to timestamp using MomentJS?

I used MomentJS to convert local date to UTC date using the following way:

$("#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>

Now I need timestamp from the output value using MomentJS.

Upvotes: 28

Views: 122075

Answers (5)

Atef Ben Ali
Atef Ben Ali

Reputation: 93

I think moment().unix() do the trick ! See https://momentjs.com/docs/#/displaying/unix-timestamp-milliseconds/

Upvotes: 5

Jose Perez
Jose Perez

Reputation: 61

Just to expand on something mentioned earlier. These generate the results.

// less precision
moment().unix() === moment().format('X')  // uppercase X

// more precision
moment().valueOf() === moment().format('x')  // lowercase x

Hope that sheds some light

Upvotes: 6

Deepu Reghunath
Deepu Reghunath

Reputation: 9713

To get the time from the date use the format method of momentjs

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>

Upvotes: 8

Nhan
Nhan

Reputation: 3905

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>

Upvotes: 46

Matt Johnson-Pint
Matt Johnson-Pint

Reputation: 241949

You said:

I used MomentJS to convert local date to UTC date using the following way: moment("2016-10-11 18:06:03").tz("Europe/Paris").format()

That doesn't do that. That converts a local value to Paris time, and emits it as a string in ISO8601 format.

Now I need timestamp from the output value using MomentJS.

That's a different question, and wouldn't involve the output of the above because:

  1. You can't get a timestamp from the output string, you'd get it from a moment object. You could parse that string, but that would be silly since you already had a moment object earlier.

  2. Timestamps are UTC based, so time zone conversion is irrelevant. You'd get the same timestamp if you didn't convert at all.

You can get a string with a timestamp using .format('X') or .format('x') depending on which precision you want. But it's much cleaner to just get the numerical timestamp using .valueOf() or .unix(), again depending on precision.

Upvotes: 18

Related Questions