我正在开发一个网页,该网页计算各种数据以达到表格中的特定操作时间,每个时间戳总结为基于几个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 =&#34; b1&#34;它将24:00格式转换为12AM或12 PM-格式。我删除了&#34; B2&#34;因为我不需要它。 任何提示都有帮助..
答案 0 :(得分:0)
只需要进行一些小改动。只需在这些行上使用“%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;
就是这样! :)