Функция PHP Date() & Time: Как да получа текущо времево клеймо?

⚡ Умно обобщение

Функцията date() в PHP форматира времеви отпечатъци в дати и часове, четими за човек. Това ръководство обяснява синтаксиса на датата, времевия отпечатък в Unix, как да се изброяват и задават часови зони, функцията mktime за изграждане на времеви отпечатъци и пълен справочник на символите за форматиране на час, ден, месец и година.

  • 📅 Какво прави date(): Функцията за дата преобразува времеви отпечатък във форматиран низ, използвайки символи като Y, m и d за година, месец и ден.
  • Времева маркировка на Unix: Времевият печат е броят секунди от 1 януари 1970 г. GMT, а time() връща текущата стойност.
  • ???? Времеви зони: date_default_timezone_set променя активната часова зона, а DateTimeZone::listIdentifiers изброява всички поддържани зони.
  • 🔧 време на mkt: Функцията mktime изгражда времеви отпечатък от конкретен час, минута, секунда, месец, ден и година.
  • 🔤 Форматиране на символи: Единичните букви контролират изхода, например H за 24-часов формат, l за името на деня от седмицата и F за името на месеца.
  • 📐 Справочни таблици: Групираните таблици изброяват символите за форматиране на час, ден, месец и година с пример за изпълнение за всеки от тях.
  • 🤖 AI Assist: Инструментите с изкуствен интелект могат да генерират форматиране на дати и код за разлики и да помогнат за разрешаването на объркващи грешки, свързани с часовите зони.

Функция PHP date().

Функция PHP date().

Функцията date в PHP е вградена функция, която опростява работата с типове данни за дати. Функцията date в PHP се използва за форматиране на дата или час в четлив за човек формат. Тя може да се използва за показване на датата на публикуване на статия или за записване на последната актуализация на данните в база данни.

PHP Синтаксис за дата и пример

PHP date() има следния основен синтаксис.

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

ТУК,

  • „date(…)“ е функцията, която връща текущия времеви отпечатък, форматиран в PHP на сървъра.
  • „формат“ е общият формат, в който искаме да бъде нашият резултат, например:
    • „Ymd“ за формата на дата в PHP YYYY-MM-DD
    • “Y” за показване на текущата година
  • „[timestamp]“ е по избор. Ако не е предоставен timestamp, PHP ще използва текущата дата и час на сървъра.

Нека разгледаме един основен пример, който показва текущата година.

<?php

echo date("Y");

?>

Изход:

2026

Какво е TimeStamp?

Времевият печат в PHP е числова стойност в секунди между текущото време и стойността в 1.st Януари 1970 г. 00:00:00 ч. средно време по Гринуич (GMT).

Стойността, върната от функцията за време, зависи от часовата зона по подразбиране.

Часовата зона по подразбиране е зададена във файла php.ini. Тя може да бъде зададена и програмно, използвайки функцията date_default_timezone_set.

Кодът по-долу показва текущия времеви отпечатък.

<?php

echo time();

?>

Ако сте запазили файла timestamp.php в папката phptuts, отидете до URL http://localhost/phptuts/timestamp.php

TimeStamp

Забележка: стойността на времевия печат не е константа. Тя се променя всяка секунда.

Получаване на списък с налични идентификатори на часови зони

Преди да разгледаме как да зададем програмно часовата зона по подразбиране, нека разгледаме как да получим списък с поддържаните часови зони.

<?php

$timezone_identifiers = DateTimeZone::listIdentifiers();

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

echo $list . "<br/>";

}
?>

ТУК,

  • „$timezone_identifiers = DateTimeZone::listIdentifiers();“ извиква статичния метод listIdentifiers на вградения клас DateTimeZone. Методът listIdentifiers връща списък с идентификатори, които са присвоени на променливата $timezone_identifiers.
  • „foreach{…}“ итерира през масива и отпечатва стойностите.

Ако сте запазили файла list_time_zones.php в папката phptuts, отидете до URL http://localhost/phptuts/list_time_zones.php

Идентификатори на часовата зона

PHP настройва часовата зона програмно

Функцията date_default_timezone_set ви позволява да зададете часовата зона по подразбиране от PHP скрипт.

Зададената часова зона ще се използва за всички дати PHP функции във вашите скриптове. Има следния синтаксис.

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

ТУК,

  • “date_default_timezone_set()” е функцията, която задава часовата зона по подразбиране
  • „низ $timezone_identifier“ е идентификаторът на часовата зона

Скриптът по-долу показва времето според часовата зона по подразбиране, зададена в php.ini. След това той променя часовата зона по подразбиране на Азия/Калкута и показва времето отново.

<?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");
?>

Ако сте запазили файла set_time_zone.php в папката phptuts, отидете до URL http://localhost/phptuts/set_time_zone.php

PHP настройва часовата зона програмно

Функция PHP Mktime

Функцията mktime връща клеймото за време в a Unix формат.

Има следния синтаксис.

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

ТУК,

  • „mktime(…)“ е функцията за създаване на PHP timestamp
  • „час“ е по избор; това е числото на часа
  • „минута“ е по избор; това е броят минути
  • „Секунда“ е по избор; това е броят секунди
  • „Месец“ е по избор; това е числото на месеца
  • „Ден“ е по избор; това е числото на деня
  • „Година“ е по избор; това е числото на годината
  • „is_dst“ е незадължителен; използва се за определяне на лятното часово време (DST). 1 е за DST, 0, ако не е, и -1, ако е неизвестно.

Нека сега разгледаме пример, който създава времеви печат за датата 13.10.2025, използвайки функцията mktime.

<?php

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

?>

ТУК,

  • „0,0,0“ е съответно часът, минутата и секундите.
  • „10” е месецът от годината
  • „13“ е денят от месеца
  • „2025“ е годината

Изход:

1760328000

Справочник за формат на дата в PHP

Таблиците по-долу показват често срещаните символи за форматиране, използвани при работа с функциите за дата в PHP.

Времеви параметри

Параметър Descriptйон Пример
"R" Връща пълната дата и час
<?php
echo date("r");
?>
„а“, „А“ Връща дали текущият час е съответно сутрин или следобед, сутрин или следобед
<?php
echo date("a");
echo date("A");
?>
„г“, „Г“ Връща часа без водещи нули съответно [1 до 12], [0 до 23].
<?php
echo date("g");
echo date("G");
?>
„ч“, „Х“ Връща часа с водещи нули съответно [01 до 12], [00 до 23]
<?php
echo date("h");
echo date("H");
?>
„и“, „с“ Връща минути/секунди с водещи нули [00 до 59]
<?php
echo date("i");
echo date("s");
?>

Дневни параметри

Параметър Descriptйон Пример
"д" Връща деня от месеца с водещи нули [01 до 31]
<?php
echo date("d");
?>
"j" Връща деня от месеца без водещи нули [1 до 31]
<?php
echo date("j");
?>
"Д" Връща първите 3 букви от името на деня [Неделя до Събота]
<?php
echo date("D");
?>
"L" Връща името на деня от седмицата [от неделя до събота]
<?php
echo date("l");
?>
"w" Връща деня от седмицата без водещи нули [0 до 6]; неделята е представена с нула (0) до съботата, представена с шест (6).
<?php
echo date("w");
?>
„Z“ Връща деня от годината без водещи интервали [0 до 365]
<?php
echo date("z");
?>

Параметри на месеца

Параметър Descriptйон Пример
"Т" Връща номера на месеца с водещи нули [01 до 12]
<?php
echo date("m");
?>
"н" Връща номера на месеца без водещи нули [1 до 12]
<?php
echo date("n");
?>
"М" Връща първите 3 букви от името на месеца [от януари до декември]
<?php
echo date("M");
?>
"F" Връща името на месеца [от януари до декември]
<?php
echo date("F");
?>
"т" Връща броя на дните в месеца [28 до 31]
<?php
echo date("t");
?>

Параметри на годината

Параметър Descriptйон Пример
"L" Връща 1, ако е високосна година и 0, ако не е високосна година
<?php
echo date("L");
?>
"Y" Връща годината в четирицифрен формат
<?php
echo date("Y");
?>
"Y" Връща двуцифрения формат за година (от 00 до 99)
<?php
echo date("y");
?>

Въпроси и Отговори

date() е проста процедурна функция, която форматира времева маркировка. Класът DateTime е обектно-ориентиран и поддържа аритметика, сравнение, часови зони и непроменливост, което го прави по-подходящ за сложна логика на дати в по-големи приложения.

Използвайте strtotime(), която чете формати като „2025-10-13“ или „next Monday' и връща Unix времева маркировка. За стриктно парсиране на известен формат, DateTime::createFromFormat е по-безопасен, защото очевидно се проваля при невалиден вход.

Създайте два обекта DateTime и извикайте diff(), който връща DateInterval. След това можете да прочетете дни, месеци или години, например $start->diff($end)->days, за да получите общия брой дни между датите.

Да. Опишете входния и изходния формат и изкуственият интелект може да генерира код за date(), DateTime или strtotime, включително добавяне на интервали или конвертиране на часови зони. Тествайте го с гранични случаи като високосни години и краища на месеци.

Да. Изкуственият интелект може да забележи липсващо извикване на date_default_timezone_set, несъответствие между часовите зони на сървъра и дисплея или проблеми с лятното часово време, след което да препоръча използването на DateTime с изрично определени часови зони, за да направи поведението предвидимо.

Обобщете тази публикация с: