2017-01-05 8 views
0

У меня есть строковое значение в этом формате.Функция Jquery для увеличения одного часа на основе строки ввода времени

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 
+5

И почему этот вопрос с тегом PHP? Нет никакого отношения к этому. – Twinfriends

+0

, потому что после добавления одного часа в него я хочу совместить его с той же строкой в ​​php. –

ответ

1

Вы можете попробовать это:

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); 
+0

ваш ответ кажется хорошим, но я получаю только 10 в оповещении. я хочу «10:00 AM» –

+0

@shahidhamdam вы можете Пожалуйста, проверьте его сейчас и обновить статус –

+0

спасибо сэр его сделали красиво –

1

см это

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

// получить HRS минут и секунд

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

Вы можете сделать ваше время струна как:

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'));