Funkcja daty () i czasu w PHP: jak uzyskać bieżący znacznik czasu?

⚡ Inteligentne podsumowanie

Funkcja date() w PHP formatuje znaczniki czasu do postaci czytelnej dla człowieka. W tym przewodniku wyjaśniono składnię daty, znacznik czasu w systemie Unix, sposób wyświetlania i ustawiania stref czasowych, funkcję mktime do tworzenia znaczników czasu oraz pełne omówienie znaków formatujących godzinę, dzień, miesiąc i rok.

  • 📅 Co robi date(): Funkcja daty zamienia znacznik czasu na sformatowany ciąg znaków, używając znaków takich jak Y, m i d dla roku, miesiąca i dnia.
  • ⏱️. Znak czasu Unix: Znak czasu to liczba sekund od 1 stycznia 1970 GMT, a funkcja time() zwraca wartość bieżącą.
  • 🌍 Strefy czasowe: date_default_timezone_set zmienia aktywną strefę czasową, a DateTimeZone::listIdentifiers wyświetla wszystkie obsługiwane strefy.
  • 🔧 mktime: Funkcja mktime buduje znacznik czasu na podstawie określonej godziny, minuty, sekundy, miesiąca, dnia i roku.
  • 🔤 Formatuj znaki: Pojedyncze litery kontrolują wynik, na przykład H oznacza czas 24-godzinny, l oznacza nazwę dnia tygodnia, a F nazwę miesiąca.
  • 📐 Tabele referencyjne: W zgrupowanych tabelach znajdują się znaki formatu czasu, dnia, miesiąca i roku wraz z przykładami wykonania dla każdego z nich.
  • 🤖 Asystent AI: Narzędzia AI mogą generować formatowanie daty i kod różnicowy oraz pomagać w rozwiązywaniu problemów związanych ze strefami czasowymi.

PHP data() Funkcja

PHP data() Funkcja

Funkcja daty w PHP to wbudowana funkcja, która upraszcza pracę z typami danych daty. Służy do formatowania daty lub godziny do formatu czytelnego dla człowieka. Może służyć do wyświetlania daty publikacji artykułu lub rejestrowania daty ostatniej aktualizacji danych w bazie danych.

Składnia daty PHP i przykład

Składnia funkcji PHP date() jest następująca.

<?php
date(format,[timestamp]);
?>

TUTAJ,

  • „date(…)” to funkcja zwracająca bieżący znacznik czasu sformatowany w PHP na serwerze.
  • „format” to ogólny format, w jakim chcemy, aby wyglądał nasz wynik, na przykład:
    • „Ymd” dla formatu daty PHP RRRR-MM-DD
    • „Y”, aby wyświetlić bieżący rok
  • „[znacznik czasu]” jest opcjonalny. Jeśli znacznik czasu nie zostanie podany, PHP użyje aktualnej daty i godziny na serwerze.

Przyjrzyjmy się podstawowemu przykładowi wyświetlającemu bieżący rok.

<?php

echo date("Y");

?>

Wyjście:

2026

Co to jest znacznik czasu?

Znacznik czasu w PHP to wartość liczbowa w sekundach pomiędzy czasem bieżącym a wartością w punkcie 1st Styczeń 1970 00:00:00 Czas Greenwich (GMT).

Wartość zwracana przez funkcję time zależy od domyślnej strefy czasowej.

Domyślna strefa czasowa jest ustawiona w pliku php.ini. Można ją również ustawić programowo za pomocą funkcji date_default_timezone_set.

Poniższy kod wyświetla aktualny znacznik czasu.

<?php

echo time();

?>

Zakładając, że zapisałeś plik timestamp.php w folderze phptuts, przejdź do URL http://localhost/phptuts/timestamp.php

TimeStamp

Uwaga: wartość znacznika czasu nie jest stała. Zmienia się co sekundę.

Pobieranie listy dostępnych identyfikatorów stref czasowych

Zanim przyjrzymy się, jak programowo ustawić domyślną strefę czasową, zobaczmy, jak uzyskać listę obsługiwanych stref czasowych.

<?php

$timezone_identifiers = DateTimeZone::listIdentifiers();

foreach($timezone_identifiers as $key => $list){

echo $list . "<br/>";

}
?>

TUTAJ,

  • „$timezone_identifiers = DateTimeZone::listIdentifiers();” wywołuje metodę statyczną listIdentifiers wbudowanej klasy DateTimeZone. Metoda listIdentifiers zwraca listę identyfikatorów przypisanych do zmiennej $timezone_identifiers.
  • “foreach{…}” iteruje po tablicy i drukuje wartości.

Zakładając, że zapisałeś plik list_time_zones.php w folderze phptuts, przejdź do URL http://localhost/phptuts/list_time_zones.php

Identyfikatory stref czasowych

PHP programowo ustawia strefę czasową

Funkcja date_default_timezone_set pozwala ustawić domyślną strefę czasową ze skryptu PHP.

Ustawiona strefa czasowa będzie obowiązywać dla wszystkich dat Funkcje PHP w swoich skryptach. Ma następującą składnię.

<?php
date_default_timezone_set(string $timezone_identifier);
?>

TUTAJ,

  • „date_default_timezone_set()” to funkcja ustawiająca domyślną strefę czasową
  • „string $timezone_identifier” to identyfikator strefy czasowej

Poniższy skrypt wyświetla czas zgodnie z domyślną strefą czasową ustawioną w pliku php.ini. Następnie zmienia domyślną strefę czasową na Azja/Kalkuta i ponownie wyświetla godzinę.

<?php
echo "The time in " . date_default_timezone_get() . " is " . date("H:i:s");

date_default_timezone_set("Asia/Calcutta");
echo "The time in " . date_default_timezone_get() . " is " . date("H:i:s");
?>

Zakładając, że zapisałeś plik set_time_zone.php w folderze phptuts, przejdź do URL http://localhost/phptuts/set_time_zone.php

PHP programowo ustawia strefę czasową

Funkcja PHP Mktime

Funkcja mktime zwraca znacznik czasu w pliku a Unix Format.

Ma następującą składnię.

<?php
mktime(hour, minute, second, month, day, year, is_dst);
?>

TUTAJ,

  • „mktime(…)” to funkcja znacznika czasu tworząca PHP
  • „godzina” jest opcjonalna, jest to numer godziny
  • „minuta” jest opcjonalna; jest to liczba minut
  • „sekunda” jest opcjonalna; jest to liczba sekund
  • „miesiąc” jest opcjonalny; jest to numer miesiąca
  • „dzień” jest opcjonalny, jest to numer dnia
  • „rok” jest opcjonalny; jest to numer roku
  • „is_dst” jest opcjonalne; służy do określenia czasu letniego (DST). 1 oznacza czas letni, 0 oznacza, że ​​czas letni nie jest letni, a -1 oznacza, że ​​czas letni jest nieznany.

Przyjrzyjmy się teraz przykładowi, który tworzy znacznik czasu dla daty 13/10/2025 za pomocą funkcji mktime.

<?php

echo mktime(0,0,0,10,13,2025);

?>

TUTAJ,

  • „0,0,0” to odpowiednio godzina, minuta i sekundy.
  • „10” to miesiąc w roku
  • „13” to dzień miesiąca
  • „2025” to rok

Wyjście:

1760328000

Odniesienie do formatu daty PHP

Poniższe tabele przedstawiają powszechnie używane znaki formatujące podczas pracy z funkcjami daty PHP.

Parametry czasu

Parametr OPIS Przykład
„R” Zwraca pełną datę i godzinę
<?php
echo date("r");
?>
„a”, „A” Zwraca informację, czy bieżąca godzina jest odpowiednio przed południem lub po południu, przed południem lub po południu
<?php
echo date("a");
echo date("A");
?>
„g”, „G” Zwraca godzinę bez zer wiodących, odpowiednio [1 do 12] i [0 do 23].
<?php
echo date("g");
echo date("G");
?>
„h”, „H” Zwraca godzinę z wiodącymi zerami [01 do 12], [00 do 23] odpowiednio
<?php
echo date("h");
echo date("H");
?>
"Jest" Zwraca minuty/sekundy z zerami wiodącymi [00 do 59]
<?php
echo date("i");
echo date("s");
?>

Parametry dnia

Parametr OPIS Przykład
"re" Zwraca dzień miesiąca z zerami wiodącymi [01 do 31]
<?php
echo date("d");
?>
"J" Zwraca dzień miesiąca bez zer wiodących [1 do 31]
<?php
echo date("j");
?>
"RE" Zwraca pierwsze 3 litery nazwy dnia [od niedz. do sob.]
<?php
echo date("D");
?>
„L” Zwraca nazwę dnia tygodnia [od niedzieli do soboty]
<?php
echo date("l");
?>
„w” Zwraca dzień tygodnia bez początkowych zer [od 0 do 6]; niedziela jest reprezentowana przez zero (0), a sobota przez sześć (6).
<?php
echo date("w");
?>
„z” Zwraca dzień roku bez spacji wiodących [0 do 365]
<?php
echo date("z");
?>

Parametry miesiąca

Parametr OPIS Przykład
"M" Zwraca numer miesiąca z zerami wiodącymi [01 do 12]
<?php
echo date("m");
?>
„N” Zwraca numer miesiąca bez zer wiodących [1 do 12]
<?php
echo date("n");
?>
„M” Zwraca pierwsze 3 litery nazwy miesiąca [od stycznia do grudnia]
<?php
echo date("M");
?>
"F" Zwraca nazwę miesiąca [od stycznia do grudnia]
<?php
echo date("F");
?>
„T” Zwraca liczbę dni w miesiącu [28 do 31]
<?php
echo date("t");
?>

Parametry roku

Parametr OPIS Przykład
"L" Zwraca wartość 1, jeśli jest to rok przestępny i 0, jeśli nie jest to rok przestępny
<?php
echo date("L");
?>
"Y" Zwraca czterocyfrowy format roku
<?php
echo date("Y");
?>
„Y” Zwraca dwucyfrowy format roku (od 00 do 99)
<?php
echo date("y");
?>

FAQ

date() to prosta funkcja proceduralna, która formatuje znacznik czasu. Klasa DateTime jest zorientowana obiektowo i obsługuje arytmetykę, porównania, strefy czasowe oraz niezmienność, co czyni ją lepszą w przypadku złożonej logiki dat w większych aplikacjach.

Użyj strtotime(), który odczytuje formaty takie jak „2025-10-13” lub „następny” Mondayi zwraca znacznik czasu Unix. Do ścisłego parsowania znanego formatu, DateTime::createFromFormat jest bezpieczniejszy, ponieważ w przypadku nieprawidłowych danych wejściowych kończy się to błędem.

Utwórz dwa obiekty DateTime i wywołaj diff(), która zwróci DateInterval. Następnie możesz odczytać liczbę dni, miesięcy lub lat, na przykład $start->diff($end)->days, aby uzyskać całkowitą liczbę dni między datami.

Tak. Opisz format wejściowy i wyjściowy, a AI wygeneruje kod date(), DateTime lub strtotime, w tym doda interwały lub przeliczy strefy czasowe. Przetestuj to z przypadkami brzegowymi, takimi jak lata przestępne i końce miesięcy.

Tak. Sztuczna inteligencja potrafi wykryć brakujące wywołanie funkcji date_default_timezone_set, niezgodność strefy czasowej serwera i wyświetlacza lub problemy z czasem letnim, a następnie zalecić użycie funkcji DateTime z wyraźnie określonymi strefami czasowymi, aby zachowanie było przewidywalne.

Podsumuj ten post następująco: