How to convert iso-8601 duration in seconds using moment?
I have an iso-8601 duration that looks like this:
PT15M51S
I want to convert duration in seconds to store it in db and order by duration, etc.
Here's what I've tried so far:
var moment = require('moment');
var duration = 'PT15M51S';
var x = moment(duration, moment.ISO_8601);
console.log(x.seconds());
The result is NaN
.
+3
source to share
1 answer
You need to use a function moment.duration
. Also, to get the total value in seconds, use asSeconds()
instead seconds()
.
In your case:
var moment = require('moment');
var duration = 'PT15M51S';
var x = moment.duration(duration, moment.ISO_8601);
console.log(x.asSeconds()); // => 951
+4
source to share