Moment.js - Parse Date Time Ago
Asked Answered
L

2

49

I am saving my date like this in my mongo database:

Thu Oct 25 2018 17:30:03 GMT+0300 (EAT) 

I would like to use moment.js to have in the front end like 1 hour ago or 3 hours ago. How would I go about this?

Leifeste answered 27/10, 2018 at 0:28 Comment(2)
First, parse the date (you may want to look into moment's timezone extension). After parsing it, you can find a relative time fairly easily.Dafna
Actually, since you have the UTC offset, you probably don't need the timezone extension.Dafna
W
121

If you're using single locale try

moment('Thu Oct 25 2018 17:30:03 GMT+0300').fromNow(); //eg. 1 day ago, 2 hours ago etc

or

moment('Thu Oct 25 2018 17:30:03 GMT+0300').fromNow(true); //eg. 1 day, 2 hours

for more see docs

and:

enter image description here

Waltner answered 27/10, 2018 at 0:49 Comment(2)
Had to reconvert date first before saving with moment().format()Leifeste
can we change this range given by moment ?Scriptwriter
R
6

you can add your date and then compare with the current time:

const timestamp = moment(dateFromDatabase, 'ddd MMM DD YYYY HH:mm:ss GMT Z').fromNow();

or you can also use diff()

const timestamp = moment(dateFromDatabase, 'ddd MMM DD YYYY HH:mm:ss GMT Z').diff(Date.now(), 'hours');

you can change the measurements using years, months, weeks, days, hours, minutes, and seconds.

For more information, you can take a look on here.

Retinite answered 27/10, 2018 at 0:44 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.