上下班工作时长计算的PHP和JS代码

在这里插入图片描述
在这里插入图片描述
JS代码

//这里用的layui的laydate,laydate的使用方法自行官方查阅文档
function worktimeToManhour(){
    	var manhour = 0;
    	$.each($('.worktime'),function(k,v){
    		var _worktime = $(v).val();
    		if(_worktime){
				var splitTime = _worktime.split(" - ");
		
				if(splitTime[0] == splitTime[1]){
					$(v).val('');
					layer.msg('单次上下班时长不得大于等于24小时',{icon:2});
				}

				var stimeAry = splitTime[0].split(":");
				var sMinute = parseInt(stimeAry[0]) * 60 + parseInt(stimeAry[1]);

				var etimeAry = splitTime[1].split(":");
				var eMinute = parseInt(etimeAry[0]) * 60 + parseInt(etimeAry[1]);

				if(splitTime[0] < splitTime[1]){//当日工时计算

					manhour += eMinute - sMinute;
				}

				if(splitTime[0] > splitTime[1]){//跨日工时计算

					manhour += 1440 - sMinute + eMinute;
				}
    		}
    	});

    	// 分钟转时分
    	var hour = parseInt(manhour / 60);
    	var minute = parseInt(manhour % 60);
    	$('.manhour').text(hour+'小时'+minute+'分钟');
    }

PHP代码

// 上下班时间转成工时(分钟)$worktime = ['00:00 - 23:30']
	private function worktimeToManhour($worktime){
		if(!$worktime){
			return 0;
		}
		$msgObj = new Msg ();
		$manhour = 0;
		foreach ($worktime as $key => $value) {
			$timeTempAry = explode(' - ', $value);
			
			$stime = $timeTempAry[0];
			$etime = $timeTempAry[1];
			
			if($etime == $stime){
				$msgObj->addMsg ( 'error', '单次上下班时长不得大于等于24小时' );
			}

			$stimeAry = explode(':', $stime);
			$sMinute = intval($stimeAry[0]) * 60 + intval($stimeAry[1]);

			$etimeAry = explode(':', $etime);
			$eMinute = intval($etimeAry[0]) * 60 + intval($etimeAry[1]);
			
			if($etime < $stime){//跨日工时计算

				$manhour += 1440 - $sMinute + $eMinute;
			}

			if($stime > $etime){//当日工时计算

				$manhour += $eMinute - $sMinute;
			}

		}
		// 这里转换出来的是分钟 转换成小时
		$manhours = ceil($manhour / 60 * 100) / 100 ;
		return $manhour;
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值