Witam wszystkich Próbuję obliczyć czas, który upłynął w php. Problem nie leży w php, ale w moich umiejętnościach matematycznych. Na przykład: Czas In: 11:35:20 (hh: mm: ss), teraz powiedz, że aktualny czas to: 12:00:45 (hh: mm: ss), wtedy różnica czasu w mojej formule daje wynik: 1: -34: 25. Powinno to być: 25:25Oblicz czas, który upłynął w php
$d1=getdate();
$hournew=$d1['hours'];
$minnew=$d1['minutes'];
$secnew=$d1['seconds'];
$hourin = $_SESSION['h'];
$secin = $_SESSION['s'];
$minin = $_SESSION['m'];
$h1=$hournew-$hourin;
$s1=$secnew-$secin;
$m1=$minnew-$minin;
if($s1<0) {
$s1+=60; }
if($s1>=(60-$secin)) {
$m1--; }
if($m1<0) {
$m1++; }
echo $h1 . ":" . $m1 . ":" . $s1;
Proszę o pomoc?
EDIT
Niestety pewnie miał dodać, że strona odświeża się co drugi, aby wyświetlić nowy czas, który upłynął więc muszę używać metody powyżej. Przepraszam, że nie wyjaśniłem poprawnie.
Rozważ przekształcenie na znaczniki czasu za pomocą 'mktime()', a następnie wykonaj proste odejmowanie. A może dobrze byłoby po prostu pracować z 'time()' zamiast 'getdate()' w tym przypadku. –
i czy stosowałeś podejście odwrotne? Znasz godzinę, w której użytkownik się zalogował, a następnie wyświetla rodzaj próby? – JellyBelly
Niż wszyscy za odpowiedzi, w końcu udało mi się to sprawdzić po zapoznaniu się z odpowiedziami: 'if ($ s1 <0) { \t $ s1 + = 60; } jeśli ($ s1> = (60- $ secin)) { \t $ m1--; \t} jeśli ($ m1 <0) { $ m1 * = -1; $ m1 = (60 - $ m1); $ h1--; } ' – Wilest