aserra
aserra

Reputation: 131

Moment.js duration days error

I'm doing a count down with moment.js and duration to return days, hours, minutes and seconds. So, when I use moment.duration with miliseconds, it return a non-sense days...

var miliseconds = 4423852000
var divided = miliseconds / 1000 / 24 / 3600 // return: 51,20 days (correct)
var duration = moment.duration(miliseconds).days() // return: 20 days (???)

document.querySelector('.days').innerHTML = divided
document.querySelector('.result').innerHTML = duration
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.21.0/moment.js"></script>

<pre class="days"></pre>
<pre class="result"></pre>

I'm using moment.duration correctly??

Upvotes: 0

Views: 3759

Answers (1)

VincenzoC
VincenzoC

Reputation: 31502

You should use asDays() instead of day():

As with the other getters for durations, moment.duration().days() gets the days (0 - 30).

moment.duration().asDays() gets the length of the duration in days.

var miliseconds = 4423852000
var divided = miliseconds / 1000 / 24 / 3600 
var duration = moment.duration(miliseconds).asDays()

document.querySelector('.days').innerHTML = divided
document.querySelector('.result').innerHTML = duration
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.21.0/moment.js"></script>

<pre class="days"></pre>
<pre class="result"></pre>

Upvotes: 4

Related Questions