SO - 30611586

by Arun P Johny

JavaScript

function setNext15(date) {
    var next = new Date(date);
    var cache = next.getDate();
    next.setDate(15);
    if (cache >= 15) {
        next.setMonth(date.getMonth() + 1);
    }
    next.setHours(23, 59, 59, 0);
    console.log(next, date);
    return next;
}

setNext15(new Date());
setNext15(new Date(2015, 5, 12));
setNext15(new Date(2015, 11, 28));
setNext15(new Date(2015, 2, 31));