Cytat(Crozin @ 29.07.2014, 09:39:32 )

Liczysz trzy wartości, których suma będzie odpowiedzią:
1. Ile sekund jest pomiędzy $create_date, a godziną 22 dnia wskazywanego przez $create_date.
2. Ile pełnych dni jest pomiędzy $create_date, a chwilą obecną. Liczbę tę mnożysz przez 54000 (ilość sekund pomiędzy 07:00, a 22:00).
3. Ile sekund jest pomiędzy 07:00 dnia dzisiejszego, a aktualną godziną.
coś takiego wydaje się działać:
function datediff( $date1, $date2 )
{
//Ile sekund jest pomiędzy $create_date, a godziną 22 dnia wskazywanego przez $create_date.
if($diffnoc>0)
$diff=$diff-$diffnoc;
//Ile pełnych dni jest pomiędzy $create_date, a chwilą obecną
if($diffdays>0)
$diff=$diff-$diffdays;
(
"%d dni, %d godziny , %d minuty, %d sekundy",
intval( ( $diff % 86400
) / 3600
), intval( ( $diff / 60
) % 60
), );
}
echo datediff
( $create_date, "now" ) . "\n";
Powiedz mi tylko po co 3 punkt? ten czas jest liczony przy odejmowaniu dwóch głównych dat wiec wydaje się zbędne.
Przy okazji miedzy 22:00 a 07:00 jest 32400 sekund a nie 54000

W każdym razie dzięki za pomoc.
Cytat(SmokAnalog @ 29.07.2014, 09:40:44 )

Zanim zaczniemy rozwiązywać ten problem, zastanów się czy to ma sens. Dla uproszczenia przykładu załóżmy, że przedział wyłączony to 00:00 - 06:00. Wtedy różnicę 4 dni pokażemy jako "3 dni". Jaki w tym sens? Kto się w tym połapie?
Tak jak poniżej napisał Pyton_000 chodzi o roboczogodziny, czas jest liczony na realizacje zlecenia a ten nie jest liczony w przedziale 22:00-07:00