Reputation: 1408
I need to get the number of seconds from now till today with a specific hour.
moment().diff(moment().hour(23), 'seconds');
The precision is always in hours, I need it to be in seconds.
For example if now is 15:24. I get 28800.
Upvotes: 7
Views: 10895
Reputation: 579
Piggybacking off of Preston's answer...
If you want to return a positive value then you should put the later moment object first. So in this case
moment().hour(23).minute(0).second(0).diff(moment(), 'seconds');
If you're interested in a human readable output, you could also use to
or toNow
. Here's an example:
moment().hour(23).minute(0).second(0).toNow(true);
will result in in seconds
or in 21 hours
Here's a link to the documentation (which is fantastic):
toNow
X https://momentjs.com/docs/#/displaying/tonow/Upvotes: 0
Reputation: 2771
moment()
is the current time, so if current time is 15:24:32 moment().hour(23)
returns 23:24:32. You need to set the minutes and seconds to 0 to get the difference between 15:24:32 and 23:00:00.
This
moment().diff(moment().hour(23).minute(0).second(0), 'seconds');
returns -27328 seconds when the current time is 15:24:32
Upvotes: 16