У меня есть следующий код, я работаю в системе Workhours теперь мой вопрос
$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;
как вы видите, я получаю рабочие часы из базы данных.
Теперь я хочу отделить его от $ lunchbreak («12:00:00») — $ workshours (это может быть что угодно, скажем, («06:00:00»), он возвращает (Long = 6), я хочу отформатировать его в («06:00:00») как я могу это сделать?
Спасибо
<?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
было бы замечательно, если вы используете полную дату, а затем вы можете получить разницу от MySQL (если вы используете)
(UNIX_TIMESTAMP(TIMEDIFF(endDate, startDate)))
ИЛИ в PHP
$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');
использование DateTime а также DateInterval.
// 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;