Adding minutes to datetime in momentjs
moment().format("LTS")
returns a string value in hh:mm:ss AM/PM
format.
When you create a moment object using a string that is not in standard format, you should pass the input format as second parameter to moment constructor.
For eg: Jan 1, 2017
in string 01012017
is not a standard representation. But if you need a moment object out of it, using moment("01012017")
will give "Invalid Date" response when formatting. Instead, use moment("01012017","DDMMYYYY")
var d = moment("01012017")
d.toISOString() => "Invalid date"
var d = moment("01012017", "DDMMYYYY")
d.toISOString() => "2016-12-31T18:30:00.000Z"
In your code, when creating 'date' variable pass "hh:mm:ss A" as second parameter in the moment constructor as mentioned below .
var date = moment(startdate, "hh:mm:ss A")
.add(seconds, 'seconds')
.add(minutes, 'minutes')
.format('LTS');
Moment has really good documentation. I would check it out: http://momentjs.com/docs/
But to address your question more directly, you could do something like:
var secondsToMinutes = '3:20';
var seconds = secondsToMinutes.split(':')[1];
var minutes = secondsToMinutes.split(':')[0];
var momentInTime = moment(...)
.add(seconds,'seconds')
.add(minutes,'minutes')
.format('LT');
You should use the actual handlers to the best of your ability. There are some cool things you can do with durations now, but this is more succinct.
Edit:
As mentioned in a different answer:
moment('2:00:00 PM', 'h:mm:ss A')
Is necessary if you're handling that format. Regardless - adding/subtracting minutes/hours to a moment object is trivial. Passing invalid strings to a moment object is a different issue in-and-of itself. ;)