2017-01-28 12 views
-1

У меня есть время, как это:JavaScript - Как изменить время строки

12:30PM 

И я хочу, чтобы изменить его на час смещения (например: -5), плюс, если время идет меньше, чем в полночь он должен отображать предыдущую дату, которую я могу сделать; но остальное я не могу.

У кого-нибудь есть идея, как это сделать, потому что я смущен.

ответ

1
time="12:35PM"; 

получить часы + минуты только

timearr=time.replace("PM","").replace("AM","").replace(" Yesterday","").replace(" Tomorrow","").split(":"); 

часов минус пять

timearr[0]-=5; 

Проверьте Вчера

if(timearr[0]<0){ 
timearr.push(" Yesterday"); 
timearr[0]=timearr[0]%24; 
} 

Проверить, если завтра:

if(timearr[0]>24){ 
timearr.push(" Tomorrow"); 
timearr=timearr%24; 
} 

Проверьте Ante Meridian или Post Meridian

if(timearr[0]>12){ 
timearr[1]+="PM"; 
timearr[0]-=12; 
}else{ 
    timearr[1]+="AM"; 
} 

Создать TimeString снова:

timearr[0]+=":"; 
time=timearr.join(""); 
2

Рассмотрите возможность использования moment.js.

moment().format(); 

возвращает текущую дату-время. например: "2017-01-28T14:52:59+02:00"

moment().format('h:mm A'); 

возвращает текущее время. например: "2:54 PM"

moment().add(5, 'hours').format('h:mm A'); 

возвращает текущее время плюс 5 часов добавили к нему. например: "7:54 PM"

+0

Как бы вы раз в строку – Achmed

+0

Я не уверен, что именно вы спрашиваете. Более подробную информацию о том, как это работает, можно найти в официальной документации на moment.js. –