很长时间格式化H:i

时间:2017-10-31 07:53:43

标签: php database divide

我现在有以下代码在工作时间系统上工作,我的问题是

$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")我该怎么做?

由于

3 个答案:

答案 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)

使用DateTimeDateInterval

// 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;
相关问题