gpt4 book ai didi

jquery - 如何计算获取返回值的时间

转载 作者:行者123 更新时间:2023-12-01 04:52:00 25 4
gpt4 key购买 nike

我想获得有关 jquery 的帮助。我在 HTML 元素中的那些时间的返回值方面遇到了问题。我正在计算 time1 和 time2 之间的时间会持续多长时间,例如:4:30pm 带走 6:30pm,返回值为 2.00。

以下是 HTML 的示例:

<span id='time1'>4:30 PM</span> - <span id='title1'>The Scorpion King</span><br></br>
<span id='time2'>6:30 PM</span> - <span id='title2'>Gone in Sixty Seconds</span><br></br>
<span id='time3'>9:00 PM</span> - <span id='title3'>The Fast and the Furious</span><br></br>
<span id='time4'>11:30 PM</span> - <span id='title4'>The Fast and the Furious</span><br></br>
<span id='time5'>2:00 AM</span> - <span id='title5'>The Scorpion King</span><br></br>
<span id='time6'>4:00 AM</span> - <span id='title6'>New Sheer Cover Studio mineral makeup</span><br></br>
<span id='time7'>8:49 PM</span> - <span id='title7'>Tamra's O.C. Wedding</span><br></br>

在这种情况下,我有一个返回值,当我计算出哪个返回值应该显示“2.00”2小时时,它会从时间1和时间2显示“-10.00”。还有其他值可以做同样的事情,这会让我困惑该时间将持续多少小时。我对任何其他返回值都没有问题,当我在不同时间锻炼时,我会得到类似 1.00、1.30、2.00、2.30.. 等的值。我想计算出在没有返回值“-10.00”、“-11.00”或任何使用“1.00”、“2.00”之类的东西的情况下它会持续多长时间, '3.00'...等之前做某事。

我已经尝试过这样的代码,但它会得到错误的返回值,例如“-10.00”、“-11.00”或其他应该是 1.00、2.00 或其他值的值。

function getSchedule($link,j)
{
var widthval = 850;
var parts = $link.split("/");
var links = parts[parts.length-1];
var programlength = 0;

$.ajax({
url:$.trim(links),
type:'GET',
data:'',
success: function(data)
{
var $data = $(data);
var title1 = $data.filter("#title1").html();
var title2 = $data.filter("#title2").html();

var time1 = $data.filter("#time1").html();
var time2 = $data.filter("#time2").html();

time1 = time1.split(" ");
var time1AMPM = time1[1];
time1 = time1[0].split(":");
time1= time1[0]+'.'+time1[1];

if($.trim(time1AMPM) == 'AM' && time1<12)
time1 = parseFloat(time1)+12;
else if($.trim(time1AMPM) == 'PM' && time1<12)
time1 = parseFloat(time1)+12;

time2 = time2.split(" ");
var time2AMPM = time2[1];
time2 = time2[0].split(":");
time2= time2[0]+'.'+time2[1];
if($.trim(time2AMPM) == 'AM' && time2<12)
time2 = parseFloat(time2)+12;
else if($.trim(time2AMPM) == 'PM' && time2<12)
time2 = parseFloat(time2)+12;

var difftime2time1 = (parseFloat(time2) - parseFloat(time1)).toFixed(2);
var difftime3time2 = (parseFloat(time3) - parseFloat(time2)).toFixed(2);

if(isNaN(difftime2time1))
{
difftime2time1=0;
}
if(isNaN(difftime3time2))
{
difftime3time2=0;
}
var currenttotal = 0;
var firstele = ((j-1)*1)+1; // how many programme i want to output in per block
var lastele = parseInt(firstele)+1; // how many programme i want to output AFTER the firstele
var k = 1;
var programlength = 0;

for(;firstele <= lastele;firstele++)
{
var nexttimedate = parseInt(k)+1;
var programlength = eval('difftime'+nexttimedate+'time'+k);
//alert(programlength);

if(programlength >= 1.00 && programlength <= 1.29)
{
$('#programe'+firstele).addClass("span1hr");
width[j]=517;
}

if(programlength >= 1.30 && programlength <= 1.80)
{
$('#programe'+firstele).addClass("span1_5hr");
width[j]=784;
}

if(programlength >= 1.81 && programlength <= 1.99)
{
$('#programe'+firstele).addClass("span2hr");
width[j]=784;
}

if(programlength >= 2.00 && programlength <= 2.29)
{
$('#programe'+firstele).addClass("span2hr");
width[j]=1051;
}

if(programlength >= 2.30 && programlength <= 2.80)
{
$('#programe'+firstele).addClass("span2_5hr");
width[j]=1318;
}

//sort this out--------1 hour
if(programlength >= 13.00 && programlength <= 13.29)
{
$('#programe'+firstele).addClass("span1hr");
width[j]=517;
}

//sort this out--------1 hour and 30 mins
if(programlength >= 13.30 && programlength <= 13.80)
{
$('#programe'+firstele).addClass("span1_5hr");
width[j]=517;
}

//sort this out--------2 hour
if(programlength >= 14.00 && programlength <= 14.29)
{
$('#programe'+firstele).addClass("span2hr");
width[j]=1585;
}

//sort this out-------- 2 hours and 30 mins
if(programlength >= 14.30 && programlength <= 14.80)
{
$('#programe'+firstele).addClass("span2_5hr");
width[j]=1585;
}

if(programlength == -10.00) //sort this out ---- 2 hour program
{
$('#programe'+firstele).addClass("span2hr");
width[j]=1051;
}
currenttotal++;
pgmcontent[firstele] = eval('title'+k);
k++;
}
checksum+=j;

if(checksuminit == checksum)
{
for(var ii=1;ii<width.length-1;ii++)
{
widthval+=width[ii];
}

for(var jj=1;jj <= pgmcontent.length-1;jj++)
{
$('#programe'+jj).html(pgmcontent[jj]);
}

for(var kk=1;kk <= imagecontent.length-1;kk++)
{
$('#image'+kk).html(imagecontent[kk]);
}
$("body").find('.rowSubPgm').each(function(index) {
$(this).css( "width", widthval+"px");
});
}
}
});
}

我无法发布 jsfiddle 来显示示例,因为当我按时锻炼时,警报不会显示。不过,我很高兴发布我的网站链接,这样您就可以看到差异值为“1.00、2.00、”13.00”、“14.00”和“-10.00”的警报消息。你就会知道我到底在说什么。

我的网站链接:

最佳答案

如果您的时间从上午 11 点开始,到下午 1 点结束,那么您的代码目前会在上午和下午各增加 12 个小时,结果是 13 - 23 = -10

当前时间是上午:

if($.trim(time1AMPM) == 'AM' && time1<12)
time1 = parseFloat(time1)+12;

尝试:

if($.trim(time1AMPM) == 'AM')
time1 = parseFloat(time1);

时间2相同。

然后,您还需要添加针对午夜后进行的节目的检查。例如从 2300 开始,到 0100 结束。最简单的做法是:

if (difftime2time1 < 0) difftime2time1 += 24; // add on 24 hours

关于jquery - 如何计算获取返回值的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18678319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com