簡體   English   中英

添加時間值時如何始終恢復到最長24小時

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM