我现在有以下代码在工作时间系统上工作,我的问题是
$ochtendbreak = "10:00:00"; //begin ochtend pauze
$lunchbreak = "12:00:00"; // begin middag pauze
$middagpauzebreak = "13:30:00"; // begin middag koffie pauze
$ochtendgewerktetijd = "03:00:00"; //minimaal 3 uur gewerkt
$lunchworkedbreak = "06:00:00"; // minimaal 6 uur gewerkt
$middaggewerktetijd = "03:00:00"; //minimaal 3 uur gewerkt
$vollewerkdag = "01:00:00"; // alles bij elkaar 1 uur pauze
$lunchpauze = "00:30:00";
$ochtendpauze = "00:15:00";
$middagpauze = "00:15:00";
$nachtdienst = NULL;
while (!$rs->EOF){
$workedhours = $rs->fields('workedhours');
$startworkhours = $lunchbreak - $gewerkteuren;
$endworkhours = $lunchbreak + $gewerkteuren;
你可以看到我从数据库中得到了工作时间。
现在我想把它从午餐时间分开(#34; 12:00:00") - $ workhours(这可以是任何让我们说出来的东西(" 06:00:00")它返回(Long = 6)我想将其格式化为(" 06:00:00")我该怎么做?
由于
答案 0 :(得分:1)
<?php
$lunchbreak = new DateTime('12:00:00');
$workedhours=new DateTime('6:00:00');
$Time=$lunchbreak->diff($workedhours);
echo $Time->format('"%H:%I:%S" hours');
输出是:
"06:00:00" hours
查看php的日期时间函数: http://php.net/manual/en/datetime.diff.php
答案 1 :(得分:1)
如果你使用完整的日期然后你可以从mysql获取差异(如果你正在使用)那将是很好的
(UNIX_TIMESTAMP(TIMEDIFF(endDate, startDate)))
PHP中的OR
$date1 = new DateTime("now");//just for example
$date2 = new DateTime("tomorrow"); //just for example
$dteStart = new DateTime($strStart);
$dteEnd = new DateTime($strEnd);
$dteDiff = $dteStart->diff($dteEnd);
$diffStr = $dteDiff->format('H:i:s');
答案 2 :(得分:1)
// here we get DateTime object from time string
$lunchbreak = DateTime::createFromFormat('H:i:s', '12:00:00');
$workedhours = DateTime::createFromFormat('H:i:s', '06:00:00');
// get interval
$interval = $lunchbreak->diff($workedhours);
// print need value (hours as int)
echo $interval->h;