How to get current time in a format hh:mm AM/PM in Javascript?

后端 未结 4 1380
小鲜肉
小鲜肉 2021-01-05 11:26

I have a Javascript in which I need to paste the current time in a format HH:MM AM/PM. There\'s one catch - I need to put the time that starts in two hours from now, so for

4条回答
  •  感动是毒
    2021-01-05 12:01

    Use Date methods to set and retrieve time and construct a time string, something along the lines of the snippet.

    [edit] Just for fun: added a more generic approach, using 2 Date.prototype extensions.

    var now = new Date();
    now.setHours(now.getHours()+2);
    var isPM = now.getHours() >= 12;
    var isMidday = now.getHours() == 12;
    var result = document.querySelector('#result');
    var time = [now.getHours() - (isPM && !isMidday ? 12 : 0), 
                now.getMinutes(), 
                now.getSeconds() || '00'].join(':') +
               (isPM ? ' pm' : 'am');
                
    result.innerHTML = 'the current time plus two hours = '+ time;
    
    // a more generic approach: extend Date
    Date.prototype.addTime = addTime;
    Date.prototype.showTime = showTime;
    
    result.innerHTML += '

    using Date.prototype extensions

    '; result.innerHTML += 'the current time plus twenty minutes = '+ new Date().addTime({minutes: 20}).showTime(); result.innerHTML += '
    the current time plus one hour and twenty minutes = '+ new Date().addTime({hours: 1, minutes: 20}).showTime(); result.innerHTML += '
    the current time minus two hours (format military) = '+ new Date().addTime({hours: -2}).showTime(true); result.innerHTML += '
    the current time plus ten minutes (format military) = '+ new Date().addTime({minutes: 10}).showTime(true); function addTime(values) { for (var l in values) { var unit = l.substr(0,1).toUpperCase() + l.substr(1); this['set' + unit](this['get' + unit]() + values[l]); } return this; } function showTime(military) { var zeroPad = function () { return this < 10 ? '0' + this : this; }; if (military) { return [ zeroPad.call(this.getHours()), zeroPad.call(this.getMinutes()), zeroPad.call(this.getSeconds()) ].join(':'); } var isPM = this.getHours() >= 12; var isMidday = this.getHours() == 12; return time = [ zeroPad.call(this.getHours() - (isPM && !isMidday ? 12 : 0)), zeroPad.call(this.getMinutes()), zeroPad.call(this.getSeconds()) ].join(':') + (isPM ? ' pm' : ' am'); }

提交回复
热议问题