Javascript:减去MySQL时间戳格式的分钟数

时间:2017-05-20 13:48:29

标签: javascript datetime

我正在尝试使用按钮创建一个开关,当我单击它时,它将获得当前时间戳减去10分钟,然后将从所述时间戳开始查询数据库中的所有条目,我有一个工作的javascript函数但问题是当时间少于10分钟(例如21:06:35)时,它显示负值(21:-4:35)而不是(20:56:35)。这是我目前的代码:

    var nowna = new Date();
    var month = nowna.getMonth() + 1;
    var day = nowna.getDate();
    var hour = nowna.getHours();
    var minute = nowna.getMinutes() - 10;
    var second = nowna.getSeconds();
    var nowna_init = nowna.getFullYear() + '-' +
        ((''+month).length<2 ? '0' : '') + month + '-' +
        ((''+day).length<2 ? '0' : '') + day + ' ' +
        ((''+hour).length<2 ? '0' :'') + hour + ':' +
        ((''+minute).length<2 ? '0' :'') + minute + ':' +
        ((''+second).length<2 ? '0' :'') + second;
        var start15 = nowna_init;
        console.log(start15);

这是我在控制台日志中获得的内容

    2017-05-20 21:-4:35
    2017-05-20 21:-4:44
    2017-05-20 21:-1:33
    2017-05-20 21:26:05
    2017-05-20 21:26:08

1 个答案:

答案 0 :(得分:0)

使用日期对象的函数setMinutes

像这样使用:

var d = new Date("2017-05-20T13:03:35.310Z");
d.setMinutes(d.getMinutes() - 10);
console.log(d.getMinutes());

小时也会更新。

&#13;
&#13;
var d = new Date("2017-05-20T13:03:35.310Z");
console.log(d.getMinutes()); // 3
console.log(d.getHours()); // 13
d.setMinutes(d.getMinutes() - 10);
console.log(d.getMinutes()); // 53
console.log(d.getHours()); // 12
&#13;
&#13;
&#13;

注意:小时结果取决于您当地的时区。