Đối với một add đơn giản/trừ chức năng giờ/phút trong javascript, hãy thử này:
function getTime (addHour, addMin){
addHour = (addHour?addHour:0);
addMin = (addMin?addMin:0);
var time = new Date(new Date().getTime());
var AM = true;
var ndble = 0;
var hours, newHour, overHour, newMin, overMin;
//change form 24 to 12 hour clock
if(time.getHours() >= 13){
hours = time.getHours() - 12;
AM = (hours>=12?true:false);
}else{
hours = time.getHours();
AM = (hours>=12?false:true);
}
//get the current minutes
var minutes = time.getMinutes();
// set minute
if((minutes+addMin) >= 60 || (minutes+addMin)<0){
overMin = (minutes+addMin)%60;
overHour = Math.floor((minutes+addMin-Math.abs(overMin))/60);
if(overMin<0){
overMin = overMin+60;
overHour = overHour-Math.floor(overMin/60);
}
newMin = String((overMin<10?'0':'')+overMin);
addHour = addHour+overHour;
}else{
newMin = minutes+addMin;
newMin = String((newMin<10?'0':'')+newMin);
}
//set hour
if((hours+addHour>=13)||(hours+addHour<=0)){
overHour = (hours+addHour)%12;
ndble = Math.floor(Math.abs((hours+addHour)/12));
if(overHour<=0){
newHour = overHour+12;
if(overHour == 0){
ndble++;
}
}else{
if(overHour ==0){
newHour = 12;
ndble++;
}else{
ndble++;
newHour = overHour;
}
}
newHour = (newHour<10?'0':'')+String(newHour);
AM = ((ndble+1)%2===0)?AM:!AM;
}else{
AM = (hours+addHour==12?!AM:AM);
newHour = String((Number(hours)+addHour<10?'0':'')+(hours+addHour));
}
var am = (AM)?'AM':'PM';
return new Array(newHour, newMin, am);
};
này có thể được sử dụng mà không thông số để có được thời gian hiện tại
getTime();
hoặc với các thông số để có được thời gian với biên bản thêm/giờ
getTime(1,30); // adds 1.5 hours to current time
getTime(2); // adds 2 hours to current time
getTime(0,120); // same as above
thời gian thậm chí tiêu cực làm việc
getTime(-1, -30); // subtracts 1.5 hours from current time
niềm vui này ction trả về một mảng của
array([Hour], [Minute], [Meridian])
Đây không phải là cách duy nhất: 'someDate.setHours (someDate.getHours() + 1);' –
Tôi thích điều này vì nó hoạt động với thời gian độc lập với công cụ Timezone, phải không? Vì vậy, việc thêm 12 giờ qua, nói rằng, thay đổi múi giờ trong múi giờ địa phương sẽ vẫn dẫn đến chênh lệch thời gian chính xác là 12 giờ. –
@InancGumus bạn đã sai! Phương pháp của tôi cũng sẽ tạo ra thời gian chính xác. Hãy dùng thử trong bảng điều khiển trình duyệt của bạn. –