Jquery合计时间不正确
jquery totaling time improperly
我的网站上有以下HTML表格
<div class="timecard">
<table>
<tr class = "display-even-row">
<td align="left" style="color:#000099">In</td>
<td align="left" class="job_code">2400-Duffy's</td>
<td align="left" class="hrs">00:04</td>
</tr>
<tr class = "display-odd-row">
<td align="left" style="color:#009900">In</td>
<td align="left" class="job_code">1500-Orchard</td>
<td align="left" class="hrs">01:00</td>
</tr>
<tr class = "display-even-row">
<td align="left" style="color:#000099">In</td>
<td align="left" class="job_code">32-Black</td>
<td align="left" class="hrs">10:00</td>
</tr>
<tr class = "display-odd-row">
<td align="left" style="color:#009900">In</td>
<td align="left" class="job_code">1500-Orchard</td>
<td align="left" class="hrs">4</td>
</tr>
</table>
</div>
<div id="total">
</div>
我有下面的jquery脚本来计算每个单独的工作代码的总小时数。它是动态设计的,允许以后添加更多的作业代码。但是,它不能正确地计算小时数,也不能显示工作是否有分钟数。
$(document).ready(function(){
var timeString = $(this).next('td.hrs').text();
var components = timeString.split(':');
var seconds = components[1] ? parseInt(components[1], 10) : 0;
var hrs = parseInt(components[0], 10) + seconds / 60;
total += hrs;
var temp = [];
$('.job_code').each(function(index, element){
var text = $(this).text();
temp.push(text);
});
// remove duplicates
var job_code = [];
$.each(temp, function(index, element){
if($.inArray(element, job_code) === -1) job_code.push(element);
});
var sum = {};
$.each(job_code, function(index, element){
var total = 0;
$('.job_code:contains('+element+')').each(function(key, value){
total += parseInt($(this).next('td.hrs').text());
sum[index] = {'job_code' : element, 'total': total};
});
});
console.log(sum);
$.each(sum, function(index, element){
$('#total').append('<p>Total for '+element.job_code+': '+element.total+'</p>');
});
});
有什么想法需要做些什么改变,使这个工作与00:00而不是只是整个整数?
由于没有使用日期/时间解析库,您可能希望在尝试解析冒号之前提取冒号两侧的整数字符串。
var timeString = $(this).next('td.hrs').text();
var components = timeString.split(':');
var seconds = components[1] ? parseInt(components[1], 10) : 0;
var hrs = parseInt(components[0], 10) + seconds / 60;
total += hrs;
您也可以使用正则表达式来完成此操作,但是拆分应该可以正常工作。
相关文章:
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- Amazon S3 REST API大小不正确
- Javascript Reg Exp不正确匹配
- DIV并排,位置不正确
- 仅在IE中,javascript中的时区名称不正确
- asp.net 图表控件显示不正确的工具提示日期时间值
- Mediaelement.js setCurrentTime在Firefox和使用flash时设置的时间不正确
- UTC 时间不是以 24 小时格式显示的,并且在上午 12 点之后不正确
- 时间戳中的日期不正确,例如DD_MM_YYYY_HH_MI_SS
- MongoDB日期时间值存储不正确
- 日期在Highcharts图中显示不正确,时间数据不规则
- 在x轴使用毫秒时接收到不正确的日期时间
- 时间转换为ISO字符串不正确,显示文本字段
- Javascript日期格式显示不正确的时间
- 为什么我的javascript (node.js)给我不正确的时间戳
- HTML5 & # 39;时间# 39;标签设置值不正确
- Jquery合计时间不正确
- nvd3时间H:M:S轴显示不正确
- ECMAScript 5.1规范不正确?日期构造函数日期/时间格式解析为UTC
- unix时间转换后的年份不正确