console.log of my initial date shows:
Fri Apr 01 2016 02:00:00 GMT+0200 (CEST)
This is what I do:
// first day is guaranteed to be a first day of month by default
var firstDayOfMonth = moment.utc(initialDate).startOf('day');
var lastDayOfMonth = firstDayOfMonth.clone();
lastDayOfMonth.endOf('month');
console.log(firstDayOfMonth.toDate()); // Fri Apr 01 2016 02:00:00 GMT+0200 (CEST)
console.log(lastDayOfMonth.toDate()); // Sun May 01 2016 01:59:59 GMT+0200 (CEST)
But last day of April is not May 1st of course.
It might be related to a Summertime issue (CEST)? But i need it working in any timezone - I already try to set anything as UTC to get rid of these annoying timezone issues.