Ćwiczenia PHP – praca z datą i czasem (cz. 2)

Formatowanie dat, walidacja, DateTime, różnica między datami oraz data/czas w MySQL.

6Formatowanie daty funkcją date()

Funkcja date() formatuje datę i czas zgodnie z podanym wzorcem. Stosowane są różne znaczniki: Y – pełny rok, m – miesiąc z zerem wiodącym, d – dzień miesiąca, H – godzina w formacie 24‑godzinnym, i – minuty.

<?php
echo "Format amerykański: " . date("m/d/Y") . "<br>";
echo "Format europejski: " . date("d.m.Y");
?>
            

Zadanie F – pełna data i godzina

Rozbuduj przykład tak, aby wyświetlić również godzinę w formacie H:i, np. 05.02.2026, godz. 11:30.

7Walidacja daty – funkcja checkdate()

Funkcja checkdate() sprawdza, czy podana data kalendarzowa jest poprawna w kalendarzu gregoriańskim (miesiąc, dzień, rok). Przyjmuje trzy argumenty: numer miesiąca, dzień oraz rok i zwraca wartość logiczną true albo false.

<?php
if (checkdate(2, 30, 2024)) {
    echo "Data jest poprawna.";
} else {
    echo "Data jest niepoprawna.";
}
?>
            

Zadanie G – sprawdzanie daty z formularza

Przygotuj prosty formularz z polami: dzień, miesiąc, rok. Po wysłaniu formularza użyj checkdate(), aby sprawdzić, czy data jest poprawna.

8Obiektowe podejście – klasa DateTime

Klasa DateTime reprezentuje konkretny punkt w czasie. Pozwala wygodnie formatować daty, dodawać lub odejmować okresy oraz porównywać różne daty.

<?php
$data = new DateTime("2025-03-15 12:00:00");
echo "Sformatowana data: " . $data->format("Y-m-d H:i:s");
?>
            

Zadanie H – przesunięcie daty o 7 dni

Użyj klasy DateTime, aby utworzyć obiekt z dzisiejszą datą, a następnie dodaj do niego 7 dni i wyświetl wynik.

9Różnica między dwiema datami – diff()

Metoda diff() porównuje dwa obiekty DateTime i zwraca obiekt DateInterval zawierający m.in. liczbę dni różnicy. Dzięki temu można precyzyjnie wyznaczyć odstęp między datami, uwzględniając lata przestępne i różną długość miesięcy.

<?php
$data1 = new DateTime("2025-03-15");
$data2 = new DateTime("2025-04-10");

$roznica = $data1->diff($data2);

echo "Różnica: " . $roznica->days . " dni";
?>
            

Zadanie I – ile dni do końca roku?

Napisz skrypt, który obliczy, ile dni pozostało od dzisiejszej daty do końca bieżącego roku (31 grudnia).

10Data i czas w MySQL – funkcja NOW()

W MySQL aktualną datę i czas serwera bazy danych zwraca funkcja NOW(). Zwraca ona wartość w formacie YYYY-MM-DD HH:MM:SS, np. 2026-02-05 11:10:00.

SELECT NOW();
            

Zadanie J – zapis daty dodania rekordu

Załóż, że tworzysz tabelę uzytkownicy. Zaproponuj kolumnę przechowującą datę dodania rekordu i przygotuj przykładową instrukcję INSERT wykorzystującą funkcję NOW().