Loading:

Ferie zimowe - 3 za 2

PHP - odliczanie czasu do konkretnego wydarzenia

 Jako iż odliczanie czasu może nam przydać się wielokrotnie, napiszemy sobie funkcję, która to będzie robiła, do roboty.


function CountDown($hour, $minute, $second, $month, $day, $year) {

}

Jako parametry należy podać kolejno: godzinę, minutę, sekundę, miesiąc, dzień, rok wydarzenia. Kolejnym krokiem będzie wygenerowanie sobie czasu w sekundach wydarzenia i dnia dzisiejszego.


$eventDate = mktime($hour, $minute, $second, $month, $day, $year);
$today = mktime();

I teraz możemy sobie już tworzyć poszczególne elementy daty i czasu po prostu dzieląc te sekundy.


$secondsTo = $eventDate - $today;
$minutesTo = round($secondsTo / 60);
$hoursTo = round($minutesTo / 60);
$daysTo = round($hoursTo / 24);
$weeksTo = round($daysTo / 7);
$monthsTo = round($weeksTo / 4);
$yearsTo = round($monthsTo / 12);

Teraz moglibyśmy sobie to już wszystko zwrócić, ale nie zawsze potrzebne będą nam wszystkie informację (np. chcę policzyć sobie ile zostało dni do wakacji i nie potrzebne mi są inne właściwości), dlatego umieścimy je w tablicy.


$values = array(
        "seconds" => $secondsTo,
        "minutes" => $minutesTo,
	"hours" => $hoursTo,
	"days" => $daysTo,
	"weeks" => $weeksTo,
	"months" => $monthsTo,
	"years" => $yearsTo
);

Teraz zostało nam tylko tę tablicę zwrócić.


return $values;

I mamy gotową funkcję do odliczania czasu do konkretnej daty, teraz może zaprezentuję przykład użycia. Np. odliczanie do końca świata, który ma się wydarzyć 21 maja, 2012 roku. :)


$endWorld = CountDown(12, 0, 0, 12, 21, 2012); 
?>

<h2>Koniec świata nastąpi za:</h2>
<ul>
	<li><?php echo $endWorld['years']; ?> lat</li>
	<li><?php echo $endWorld['months']; ?> miesięcy</li>
	<li><?php echo $endWorld['weeks']; ?> tygodni</li>
	<li><?php echo $endWorld['days']; ?> dni</li>
	<li><?php echo $endWorld['hours']; ?> godzin</li>
	<li><?php echo $endWorld['minutes']; ?> minut</li>
	<li><?php echo $endWorld['seconds']; ?> sekund</li>
</ul>

To wszystko, dziękuję za uwagę i pozdrawiam.



Napisz Artykuł

Listing

<?php

function CountDown($hour, $minute, $second, $month, $day, $year) {
        $eventDate = mktime($hour, $minute, $second, $month, $day, $year);
        $today = mktime();
       
        $secondsTo = $eventDate - $today;
        $minutesTo = round($secondsTo / 60);
        $hoursTo = round($minutesTo / 60);
        $daysTo = round($hoursTo / 24);
        $weeksTo = round($daysTo / 7);
        $monthsTo = round($weeksTo / 4);
        $yearsTo = round($monthsTo / 12);
       
        $values = array(
                "seconds" => $secondsTo,
                "minutes" => $minutesTo,
                "hours" => $hoursTo,
                "days" => $daysTo,
                "weeks" => $weeksTo,
                "months" => $monthsTo,
                "years" => $yearsTo
        );
       
        return $values;
}

?>


Ten wpis posiada swój wątek na forum

Wszystkie pytania prosimy kierować właśnie tam ponieważ komentarze to miejsce na poprawki do kodu lub alternatywne rozwiązania i pytania nie będą publikowane

http://forum.funkcje.net/forum/viewtopic.php?f=2&t=5718

Dane do logowania na forum są takie same jak na funkcje.net



Dodano przez: lukaaspl Ranga: Poziom 7 Punktów: 200
Komentarze użytkowników
    • Treść komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-17 v.1.5 | design: diviXdesign & rainbowcolors