[英]How to always revert to a max 24hr period when adding time values
我正在一個網頁上工作,該網頁可以計算各種數字以達到表格中的特定操作時間,每個時間戳都基於幾個pf變量加上預先計算的數量,但是涉及很多小時,我的總輸出超過24小時。 我在SO上找到了一個腳本,該腳本從軍事時間恢復為AM / PM格式,但是由於總和可能超過24位數字,因此該腳本僅在25小時以下才修改時間。 如果我總共有39個小時,那么我將在下午27:00結束,而下午3點。 如何修改腳本,使其在24小時內循環運行,從而為我提供准確的AM或PM? 這是修改總小時數的腳本的JSFiddle鏈接: http : //jsfiddle.net/cse_tushar/xEuUR/4/ --->打入大於24:59的數字,您將明白我的意思。 。 我有一個指向我正在處理的頁面的鏈接,並且腳本非常復雜,因此我將其鏈接到實時頁面,並嘗試發布與我相關的JS示例。 (或者,如果有人甚至注意到此帖子,則可能是這樣): http : //dcalvitti.altervista.org/push.html
小時修訂腳本的代碼:
<input type="text" class="textbox1"/>
<input type="button" id="b1" value="convert 12 hr"/>
JS
$(document).ready(function () {
function am_pm_to_hours(time) {
var hours = Number(time.match(/^(\d+)/)[1]);
var minutes = Number(time.match(/:(\d+)/)[1]);
var AMPM = time.match(/\s(.*)$/)[1];
if (AMPM == "pm" && hours < 12) hours = hours + 12;
if (AMPM == "am" && hours == 12) hours = hours - 12;
var sHours = hours.toString();
var sMinutes = minutes.toString();
if (hours < 10) sHours = "0" + sHours;
if (minutes < 10) sMinutes = "0" + sMinutes;
return (sHours +':'+sMinutes);
}
function hours_am_pm(time) {
var hours = Number(time.match(/^(\d+)/)[1]);
var min = Number(time.match(/:(\d+)/)[1]);
if (min < 10) min = "0" + min;
if (hours < 12) {
return hours + ':' + min + ' AM';
} else {
hours=hours - 12;
hours=(hours < 10) ? '0'+hours:hours;
return hours+ ':' + min + ' PM';
}
}
$('#b1').click(function(){
var n = $('.textbox1').val();
var n1 =n.split('_');
var time = hours_am_pm(n1[0]+n1[1]).replace('::',':');;
$('.result').text(time);
});
$('#b2').click(function(){
var n = $('.textbox1').val();
var n1 =n.split('_');
var time = am_pm_to_hours(n1[0]+':'+n1[1]+' '+n1[2]).replace('::',':');
$('.result').text(time);
});
});
相關位是ID =“ b1”,它將24:00格式轉換為12AM或12PM格式。 我刪除了“ B2”部分,因為我不需要它。 任何提示都是有幫助的。
只需要很小的變化。 只需在這些行上使用“%24”:
function am_pm_to_hours(time) {
var hours = Number(time.match(/^(\d+)/)[1])%24;
function hours_am_pm(time) {
var hours = Number(time.match(/^(\d+)/)[1])%24;
而已! :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.