简体   繁体   English

使用 javascript / jquery 以 12 小时格式添加小时数

[英]Add hours in 12 hour format using javascript / jquery

How we can add hours into 12hour format time using Javascript/JQuery?我们如何使用 Javascript/JQuery 将小时添加到 12 小时格式时间?

Example:例子:

Add 2 hour in 12:00 AM then result should be 02:00 AM在 12:00 AM 加上 2 小时,那么结果应该是 02:00 AM
Add 8 hour in 09:00 PM then result should be 05:00 AM在 09:00 PM 加上 8 小时,那么结果应该是 05:00 AM

The following function takes a string representing a time and an integer denoting the number of hours you want to add to that time.以下函数采用一个表示时间的字符串和一个表示要添加到该时间的小时数的整数。 You can optionally pass an integer number of minutes as well.您也可以选择传递整数分钟。 The result is a string formatted as 'h:mm xm'.结果是一个格式为“h:mm xm”的字符串。

 function addTimeToString(timeString, addHours, addMinutes) { // The third argument is optional. if (addMinutes === undefined) { addMinutes = 0; } // Parse the time string. Extract hours, minutes, and am/pm. var match = /(\\d+):(\\d+)\\s+(\\w+)/.exec(timeString), hours = parseInt(match[1], 10) % 12, minutes = parseInt(match[2], 10), modifier = match[3].toLowerCase(); // Convert the given time into minutes. Add the desired amount. if (modifier[0] == 'p') { hours += 12; } var newMinutes = (hours + addHours) * 60 + minutes + addMinutes, newHours = Math.floor(newMinutes / 60) % 24; // Now figure out the components of the new date string. newMinutes %= 60; var newModifier = (newHours < 12 ? 'AM' : 'PM'), hours12 = (newHours < 12 ? newHours : newHours % 12); if (hours12 == 0) { hours12 = 12; } // Glue it all together. var minuteString = (newMinutes >= 10 ? '' : '0') + newMinutes; return hours12 + ':' + minuteString + ' ' + newModifier; } function test(timeString, addHours, addMinutes) { document.write(timeString + ' + ' + addHours + ' h ' + (addMinutes || 0) + ' m &rarr; ' + addTimeToString(timeString, addHours, addMinutes) + '<br>'); } test('11:30 AM', 1, 45); test('9:00 PM', 4); test('11:55 PM', 0, 5); // In five minutes it will be midnight: 12 am. test('12:00 AM', 0, 5); // Five minutes after midnight: 12:05 am. test('11:55 AM', 0, 5); // In five minutes it will be noon: 12 pm. test('12:00 PM', 0, 5); // Five minutes after noon: 12:05 pm.

 function formatTime(date) { var meridiem = 'AM', hours; // Add the hours date.setHours(date.getHours() + 2); hours = date.getHours(); if (hours >= 12) { meridiem = 'PM'; hours = hours % 2; } hours = (hours === 0) ? 12 : hours; return formatNumber(hours) + ':' + formatNumber(date.getMinutes()) + ' ' + meridiem; } function formatNumber(number) { return ('0' + number).slice(-2); } alert(formatTime(new Date()));

I've added a couple of methods to the Date prototype class.我在 Date 原型类中添加了几个方法。

 //Complete Solution Date.createDateFromTime = function(hours, minutes) { var date = new Date(); date.setTime(hours, minutes); return date; } Date.prototype.setTime = function(hours, minutes) { this.setHours(hours); this.setMinutes(minutes); return this.displayTime(); } Date.prototype.displayTime = function() { function addZero(number) { if (number < 10) { return "0" + number.toString(); } else { return number.toString(); } } var hours = this.getHours(); var minutes = this.getMinutes(); var am_pm = "AM"; if (hours >= 12) { am_pm = "PM" hours -= 12; } if (hours == 0) hours = 12; hours = addZero(hours); minutes = addZero(minutes); return hours + ":" + minutes + " " + am_pm; } Date.prototype.addHours = function(hours) { this.setHours(this.getHours() + hours); return this.getHours(); } //Examples date = Date.createDateFromTime(19, 20); console.log(date.displayTime()); // "07:20 PM" date.addHours(4); console.log(date.displayTime()); // "11:20 PM" date.addHours(5); console.log(date.displayTime()); // "04:20 AM"

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM