从当前日期加/减分钟

时间:2014-08-17 18:10:26

标签: javascript date time

我的目标是将当前日期/时间偏移给定的分钟数(负数或正数)。

我在互联网上浏览过很多帖子,但他们都使用getMinutes()-minutes类型的解决方案,这些解决方案不会处理负片刻或午夜日期更改之前/之后。

如果我指定Uncaught TypeError: undefined is not a functionnegativeOffset,我将获得positiveOffset。请指教。

function currentDateTime(negativeOffset, positiveOffset) {
    var newDate = new Date();
    newDate = (negativeOffset) ? newDate.getTime() - negativeOffset * 60000 : newDate;
    newDate = (positiveOffset) ? newDate.getTime() + positiveOffset * 60000 : newDate;
    var currentDate = ('0' + (newDate.getMonth()+1)).slice(-2) + '/' + ('0' + newDate.getDate()).slice(-2) + '/' + newDate.getFullYear();
    var currentHour = newDate.getHours() % 12;
    currentHour = currentHour ? currentHour : 12;
    currentHour = ('0' + (currentHour)).slice(-2);
    var currentMinute = ('0' + newDate.getMinutes()).slice(-2)
    var currentAmPm = (newDate.getHours() >= 12) ? 'pm' : 'am';
    var currentTime = currentHour + ':' + currentMinute + ' ' + currentAmPm;
    return[currentDate, currentTime];
}

1 个答案:

答案 0 :(得分:1)

newDate = (negativeOffset) ? newDate.getTime() - negativeOffset * 60000 : newDate;
newDate = (positiveOffset) ? newDate.getTime() + positiveOffset * 60000 : newDate;

此后newDate变量变为整数,您应该使用

newDate = (negativeOffset) ? new Date(newDate.getTime() - negativeOffset * 60000) : newDate;
newDate = (positiveOffset) ? new Date(newDate.getTime() + positiveOffset * 60000) : newDate;

将其保留为Date对象