JavaScript - 如何更改字符串

时间:2017-01-28 12:44:54

标签: javascript time timezone offset

我有这样的时间:

12:30PM

我希望将它改变一个小时的偏移量(例如:-5),再加上如果时间少于午夜它应该显示上一个日期,我可以这样做;但其余的我不能。

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

2 个答案:

答案 0 :(得分: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"

答案 1 :(得分: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("");