Jquery 根据时间输入字符串增加一小时的函数

Jquery function to Increment one hours based on time input string

我有这种格式的字符串值。

9:00 am

我希望它是这样的。

9:00 am - 10:00 am

第二个小时必须比第一个小时大 1。例如,如果时间是

7:00 am then it should be 7:00 am - 8:00 am

我如何使用 jquery 做到这一点? 我试过了,但它现在无法正常工作。

var time= "9:00 am"
var nexttime=time.setHours(time.getHours()+1)
 alert(nexttime);

获取

的错误
time.getHours is not a function

参考这个

var time=new Date();        
time.setHours(9, 00, 00);
var nexttime=(time.getHours()+1);
alert(nexttime);

// 获取时分秒

var nexttime=(time.getHours()+1) +":"+time.getMinutes()+":"+time.getSeconds();

你可以试试这个:

function increaseTimeByOne(timeStr) {
    var splitedTimeStr = timeStr.split(':');
    var hours = parseInt(splitedTimeStr[0]);
    var meridiem = splitedTimeStr[1].split(" ")[1];
    var minutes = splitedTimeStr[1].split(" ")[0];
    var nextHours = (hours + 1);
    var nextMeridiem;
    if (hours >= 11) {
        if (meridiem.toLowerCase() == "am") {
            nextMeridiem = "pm";
        } else if (meridiem.toLowerCase() == "pm") {
            nextMeridiem = "am";
        }
        if (nextHours > 12) {
            nextHours = nextHours - 12;
        }

    } else {
        nextMeridiem = meridiem;
    }
    return nextHours + ":" + minutes + " " + nextMeridiem;
}

并将上述函数用作

var timestr="9:00 am";
var next_hour = increaseTimeByOne(timeStr);
alert(next_hour);

您可以将时间字符串设置为:

function increaseTimeByOne(t) {
  var s  = t.split(':');
  var n  = parseInt(s[0], 10);
  var nt = (n + 1) + ":00 ";   
  var ampm = n >= 11 ? "pm" : "am";

  return t + " - " + nt + ampm;
}

console.log(increaseTimeByOne('9:00 am'));
console.log(increaseTimeByOne('11:00 am'));
console.log(increaseTimeByOne('12:00 pm'));