Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
97
rated 0 times [  101] [ 4]  / answers: 1 / hits: 58418  / 7 Years ago, thu, january 26, 2017, 12:00:00

So This is my first time using Moment.js and I encountered the following problem, so I have this following dates:



now: 2017-01-26T14:21:22+0000
expiration: 2017-01-29T17:24:22+0000


What I want to get is:



Day: 3
Hours: 3
Mins: 3


I tried the following code:



const now = moment();
const exp = moment(expire_date);
console.log(expire_date);
days = exp.diff(now, 'days');
hours = exp.diff(now, 'hours') - (days * 24);
minutes = exp.diff(now, 'minutes') - ((days * 1440) + (hours * 24) * 60);


I know I did something wrong (maybe my calculation or I used the wrong method), but I can't figure out what it is.


More From » momentjs

 Answers
13

MomentJS can calculate all that for you without you doing any logic.




  • First find the difference between the two moments

  • Express it as a Duration

  • Then display whichever component .days(), .hours() of the duration that you want.



Note: You can also express the entire duration .asDays(), .asHours() etc if you want.





const now = moment(2017-01-26T14:21:22+0000);
const expiration = moment(2017-01-29T17:24:22+0000);

// get the difference between the moments
const diff = expiration.diff(now);

//express as a duration
const diffDuration = moment.duration(diff);

// display
console.log(Days:, diffDuration.days());
console.log(Hours:, diffDuration.hours());
console.log(Minutes:, diffDuration.minutes());

<script src=https://momentjs.com/downloads/moment.js></script>




[#59187] Wednesday, January 25, 2017, 7 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
dayana

Total Points: 302
Total Questions: 102
Total Answers: 100

Location: Cayman Islands
Member since Fri, Mar 4, 2022
2 Years ago
;