date(), time(), mktime(), microtime() oraz współpraca z JavaScript.
W aplikacjach webowych daty i czas wykorzystuje się m.in. do logowania zdarzeń, generowania raportów, rejestracji użytkowników, wyświetlania ostatniej aktualizacji oraz pomiaru czasu wykonania fragmentu kodu.
W PHP pracujemy zwykle na znaczkach czasu (Unix timestamp – liczba sekund od 1.01.1970) oraz na sformatowanych ciągach znaków,
które pokazujemy użytkownikowi w czytelnej postaci, np. 2026-02-05 10:30:00.
Funkcja date() formatuje aktualną datę i czas na podstawie wewnętrznego zegara serwera.
W parametrze przekazujemy wzorzec formatu, np. "Y-m-d H:i:s" (rok-miesiąc-dzień godzina:minuta:sekunda).[web:23][web:29]
<?php
// Aktualny czas serwera w formacie RRRR-MM-DD GG:MM:SS
echo "Aktualny czas serwera: " . date("Y-m-d H:i:s");
?>
Zmodyfikuj przykład tak, aby wyświetlić datę w trzech formatach:
2026-02-05, 05.02.2026 oraz podpis słowny, np. 5 lutego 2026.
Skrypt PHP zna czas serwera, natomiast zegar lokalny urządzenia użytkownika możemy odczytać po stronie przeglądarki za pomocą JavaScript. Dzięki temu można porównać różnicę między strefą serwera a strefą użytkownika.
<p>
<?php
echo "Czas serwera (PHP): " . date("Y-m-d H:i:s");
?>
</p>
<p>
Czas lokalny użytkownika (JavaScript):
<script>
document.write(new Date().toLocaleString());
</script>
</p>
Rozbuduj przykład tak, aby użytkownik widział oba czasy obok siebie w prostej tabeli HTML (czas serwera i czas lokalny).
Funkcja time() zwraca aktualny uniksowy znacznik czasu, czyli liczbę sekund, które upłynęły od 1 stycznia 1970 roku.[web:24][web:26]
Taki zapis jest wygodny do obliczeń, porównań i przechowywania dat w bazie.
<?php
$teraz = time();
echo "Unix time (timestamp): " . $teraz;
// Przykład: data za 7 dni od teraz
$za_tydzien = $teraz + 7 * 24 * 60 * 60;
echo "<br>Data za tydzień: " . date("Y-m-d H:i:s", $za_tydzien);
?>
Napisz skrypt, który przyjmuje liczbę dni ważności konta (np. 30 dni), a następnie oblicza datę wygaśnięcia na podstawie aktualnego czasu.
Funkcja mktime() tworzy znacznik czasu dla wskazanej daty i godziny na podstawie argumentów:
godzina, minuta, sekunda, miesiąc, dzień, rok.[web:22][web:24]
Otrzymany znacznik możemy sformatować funkcją date().
<?php
// 15 marca 2025, godzina 12:00:00
$ts = mktime(12, 0, 0, 3, 15, 2025);
echo "Przykładowa data: " . date("Y-m-d H:i:s", $ts);
?>
Przyjmij, że spotkanie online odbyło się 1 marca 2026 o godz. 17:00. Oblicz datę następnego spotkania wyznaczonego 14 dni później.
Funkcja microtime(true) zwraca aktualny znacznik czasu z dokładnością do mikrosekund jako liczbę zmiennoprzecinkową.[web:27][web:30]
Możemy jej użyć do zmierzenia czasu wykonania fragmentu skryptu.
<?php
$start = microtime(true);
// fragment kodu do zmierzenia
for ($i = 0; $i < 100000; $i++) {
// prosta operacja
$x = $i * 2;
}
$end = microtime(true);
$czas = $end - $start;
echo "Czas wykonania pętli: " . round($czas, 6) . " sekundy.";
?>
Przygotuj dwa różne fragmenty kodu (np. dwie pętle o innej liczbie iteracji) i zmierz czas ich wykonania. Porównaj wyniki w formie krótkiego raportu.