Временные метки Unix и date()
Получайте текущее время в виде временной метки Unix и форматируйте его с помощью date()
«Временные метки Unix и date()» — бесплатный урок PHP Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения PHP Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс PHP Academy содержит 4 уроков всего.
Время в PHP
PHP представляет время как временную метку Unix — количество секунд с 1 января 1970 года, 00:00:00 UTC (начала эпохи Unix). Основные функции:
time()— текущая временная метка Unixdate($format, $timestamp)— форматирование временной меткиmktime()— создание временной метки из компонентов даты
time()
Получите текущую временную метку Unix:
<?php
$now = time();
echo $now; // e.g. 1716800000
echo gettype($now); // integer
// 1 day in seconds
$tomorrow = time() + 86400;
$yesterday = time() - 86400;
echo date('Y-m-d', $tomorrow); // tomorrow's dateСимволы форматирования date()
Распространённые символы форматирования для date():
Y— год из 4 цифр: 2024m— месяц с начальным нулём: 01–12d— день с начальным нулём: 01–31H— час в 24-часовом формате с начальным нулёмi— минуты с начальным нулёмs— секундыD— сокращённое название дня: MonN— день недели по ISO: 1 = Mon, 7 = Sun
Форматирование дат
Используйте date() для форматирования временных меток:
<?php
$ts = time();
echo date('Y-m-d', $ts); // 2024-05-27
echo date('d/m/Y', $ts); // 27/05/2024
echo date('D, d M Y H:i:s', $ts); // Mon, 27 May 2024 14:30:00
echo date('c', $ts); // ISO 8601: 2024-05-27T14:30:00+00:00
echo date('U', $ts); // Unix timestamp (same as time())mktime()
Создайте временную метку из конкретных компонентов даты и времени:
<?php
// mktime(hour, min, sec, month, day, year)
$ts = mktime(0, 0, 0, 12, 25, 2024); // Christmas 2024 midnight
echo date('Y-m-d', $ts); // 2024-12-25
// Last day of month trick:
$lastDay = mktime(0, 0, 0, 3, 0, 2024); // day 0 = last day of Feb
echo date('Y-m-d', $lastDay); // 2024-02-29 (leap year)strtotime()
strtotime() преобразует удобочитаемую строку с датой в временную метку:
<?php
echo strtotime('2024-12-25'); // timestamp
echo strtotime('next Monday'); // next Monday's timestamp
echo strtotime('+1 week'); // 7 days from now
echo strtotime('last day of this month'); // end of month
echo strtotime('2024-01-01 +3 months'); // April 1, 2024Арифметика дат с помощью strtotime
Вычисляйте относительные даты с помощью относительных выражений strtotime:
<?php
$subscriptionStart = strtotime('2024-01-15');
$oneYearLater = strtotime('+1 year', $subscriptionStart);
$trialEnd = strtotime('+14 days');
echo date('Y-m-d', $oneYearLater); // 2025-01-15
echo date('Y-m-d', $trialEnd); // 14 days from today
// Days until event:
$event = strtotime('2024-12-31');
$daysLeft = (int) (($event - time()) / 86400);
echo "Days until NYE: $daysLeft";Временные метки и базы данных
Храните даты в базе данных в виде строк ISO или временных меток Unix:
<?php
// Store as ISO string (recommended for readability):
$created_at = date('Y-m-d H:i:s'); // '2024-05-27 14:30:00'
// Store as Unix timestamp (fast integer comparison):
$created_ts = time(); // 1716800000
// Convert back:
$ts = strtotime($created_at);
$fmt = date('Y-m-d H:i:s', $created_ts);date_create и date_format
Объектно-ориентированные альтернативы date() и strtotime():
<?php
$dt = date_create('2024-05-27');
echo date_format($dt, 'D, d M Y'); // Mon, 27 May 2024
date_modify($dt, '+30 days');
echo date_format($dt, 'Y-m-d'); // 2024-06-26
// Equivalent OO:
$dt2 = new DateTime('2024-05-27');
$dt2->modify('+30 days');
echo $dt2->format('Y-m-d');checkdate()
Проверьте, является ли дата действительной, с помощью checkdate():
<?php
var_dump(checkdate(2, 29, 2024)); // true (leap year)
var_dump(checkdate(2, 29, 2023)); // false (not leap year)
var_dump(checkdate(13, 1, 2024)); // false (no month 13)
var_dump(checkdate(1, 31, 2024)); // trueMicrotime для измерения производительности
Используйте microtime(true), чтобы измерять время выполнения с точностью до долей секунды:
<?php
$start = microtime(true);
// Simulate work
for ($i = 0; $i < 100000; $i++) {}
$end = microtime(true);
$duration = ($end - $start) * 1000; // milliseconds
echo sprintf('Took %.2f ms', $duration);Быстрая проверка
Что возвращает функция PHP time()?
Итоги: временные метки Unix и date()
Основные сведения:
time()— текущая временная метка Unixdate($format, $ts)— форматирование любой временной меткиmktime()— создание временной метки из частей датыstrtotime()— разбор удобочитаемых дат- Используйте формат ISO 8601 для хранения данных в базе
microtime(true)— для измерения времени с высокой точностью
Изучай PHP с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 49
- Уроки
- 195
Часто задаваемые вопросы
Урок «Временные метки Unix и date()» бесплатный?
Да — полный текст урока «Временные метки Unix и date()» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс PHP Academy, подпишись на CoddyKit PRO. Курс PHP Academy содержит 4 уроков всего.
Чему я научусь в уроке «Временные метки Unix и date()»?
Получайте текущее время в виде временной метки Unix и форматируйте его с помощью date() Ты практикуешь PHP Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать PHP Academy?
Предыдущий опыт не требуется. PHP Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Временные метки Unix и date()»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке PHP Academy?
Да. Каждый урок PHP Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Временные метки Unix и date()
- Класс DateTime
- Арифметика дат с DateInterval
- Часовые пояса в PHP