Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Dokładny licznik czasu. - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: Dokładny licznik czasu. (/thread-dokladny-licznik-czasu)



Dokładny licznik czasu. - Morfeusz_2005 - 10-08-2010

Witam. Poszukuje licznika, który liczył by czas, który upłynął od danej daty, godziny i minuty. Niestety wszystkie jakie znajduje liczą tylko dni, bez minut czy godzin.

Będę wdzięczny za każdą pomoc.


RE: Dokładny licznik czasu. - Pedro84 - 11-08-2010

Google.pl => Javascript countdown


RE: Dokładny licznik czasu. - Morfeusz_2005 - 11-08-2010

Udało mi się to już opanować. Jakby ktoś chciał to proszę. Liczy od danej daty, godziny, minuty, sekundy, do daty obecnej.

Kod:
<?php

function date_diff($start, $end="NOW")
{
        $sdate = strtotime($start);
        $edate = strtotime($end);

        $time = $edate - $sdate;
        if($time>=0 && $time<=59) {
                // Seconds
                $timeshift = $time.' seconds ';

        } elseif($time>=60 && $time<=3599) {
                // Minutes + Seconds
                $pmin = ($edate - $sdate) / 60;
                $premin = explode('.', $pmin);
                
                $presec = $pmin-$premin[0];
                $sec = $presec*60;
                
                $timeshift = $premin[0].' min '.round($sec,0).' sec ';

        } elseif($time>=3600 && $time<=86399) {
                // Hours + Minutes
                $phour = ($edate - $sdate) / 3600;
                $prehour = explode('.',$phour);
                
                $premin = $phour-$prehour[0];
                $min = explode('.',$premin*60);
                
                $presec = '0.'.$min[1];
                $sec = $presec*60;

                $timeshift = $prehour[0].' hrs '.$min[0].' min '.round($sec,0).' sec ';

        } elseif($time>=86400) {
                // Days + Hours + Minutes
                $pday = ($edate - $sdate) / 86400;
                $preday = explode('.',$pday);

                $phour = $pday-$preday[0];
                $prehour = explode('.',$phour*24);

                $premin = ($phour*24)-$prehour[0];
                $min = explode('.',$premin*60);
                
                $presec = '0.'.$min[1];
                $sec = $presec*60;
                
                $timeshift = $preday[0].' dni '.$prehour[0].' godz. '.$min[0].' min. '.round($sec,0).' sek. ';

        }
        return $timeshift;
}


$start_date = ("2010-08-08 18:56:47");
$end_date = date("Y-m-d H:i:s");

echo date_diff($start_date, $end_date);

?>