Todos os hemos visto en la obligación de guardar la fecha/hora de alguna transacción. Por seguridad lo preferible es hacer dicho calculo en el back-end, pero si la seguridad no es tan importante acá la herramienta que necesitas para restar o sumar horas o días a la fecha actual.

Primero la siguiente función, que nos permitirá mostrar las horas, minutos o días de la fecha con dos carácteres en vez de uno:

Number.prototype.double = function ()
{
    var nm = this.toString();
    return (nm == '0') ? nm : ((nm.length < 2) ? '0' + nm : nm);
};

Number(0).double(); // RESPUESTA: '0'
Number(3).double(); // RESPUESTA: '03'
(32).double(); // RESPUESTA: '32'
(589).double(); // RESPUESTA: '589'

var n = 47;
n.double(); // RESPUESTA: '47'

OK, ahora a lo que vinimos:

function xDateTime (cnf)
{
    var cnf = cnf || {};
    var dte = new Date();
    var dteD = dte.getDate()
    var dteM = dte.getMonth() + 1;
    var dteY = dte.getFullYear();
    var tme = dte.getTime()
    var nDte = dte.setTime(parseInt(tme + parseInt((cnf.hours ? cnf.hours : 0) * 60 * 60 * 1000)));

    dteD = dte.getDate().double(); 
    dteM = dte.getMonth() + 1; 
    dteY = dte.getFullYear();

    var tmeH = (dte.getHours() >= 12 ? dte.getHours()-12 : dte.getHours()).double();
    var tmeM = dte.getMinutes().double()
    var tmeS = dte.getSeconds().double();

    var rtn = '';
    var rtnD = dteD + '/' + dteM + '/' + dteY;
    var rtnT = tmeH + ':' + tmeM + ':' + tmeS + (dte.getHours() >= 12 ? 'PM' : 'AM');

    switch (cnf.type)
    {
        case 'd':
            rtn = rtnD;
            break;
        case 't':
            rtn = rtnT;
            break;
        case 'dt':
            rtn = rtnD + ' ' + rtnT;
            break;
        case 'td':
            rtn = rtnT + ' ' + rtnD;
            break;
        default:
            rtn = rtnD + ' ' + rtnT;
    };

    return rtn;
};

Para recibir la hora o fecha, aplicamos así:

xDateTime();
xDateTime({ type: 'd' });
xDateTime({ type: 't' });
xDateTime({ type: 'dt' });
xDateTime({ type: 'td' });

Si necesitamos que la función devuelva una hora o fecha adelantada, aplicamos la cantidad de horas que necesitamos adelantar:

xDateTime({ hours: 5 });
xDateTime({ hours: 12 });
xDateTime({ hours: 24 });
xDateTime({ hours: 36 });
xDateTime({ hours: 48 });

Similar con una fecha atrasada:

xDateTime({ hours: -24 });
xDateTime({ hours: -36 });
xDateTime({ hours: -48 });

Combinando ambos parámetros:

xDateTime({ type: 't', hours: 5 });
xDateTime({ type: 'd', hours: -36 });
xDateTime({ type: 'd', hours: -48 });
xDateTime({ type: 'dt', hours: 24 });