JavaScript - 我如何更改字符串的时间

JavaScript - How do i change time of string

我有过这样的时光:

12:30PM

我想将它更改为一个小时的偏移量(例如:-5),另外,如果时间不到午夜,它应该显示前一个日期,我可以做到;但其余的我不能。

有没有人知道怎么做,因为我很困惑。

考虑使用 moment.js

moment().format(); 

returns当前date-time。例如:"2017-01-28T14:52:59+02:00"

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

returns 当前时间。例如:"2:54 PM"

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

returns 当前时间加上 5 小时。例如:"7:54 PM"

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;
}

检查前子午线或Post子午线

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

再次创建时间串:

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