PHP Academy · Урок

Временные метки Unix и date()

Получайте текущее время в виде временной метки Unix и форматируйте его с помощью date()

Урок 1 из 413 шагов

«Временные метки 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() — текущая временная метка Unix
  • date($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 цифр: 2024
  • m — месяц с начальным нулём: 01–12
  • d — день с начальным нулём: 01–31
  • H — час в 24-часовом формате с начальным нулём
  • i — минуты с начальным нулём
  • s — секунды
  • D — сокращённое название дня: Mon
  • N — день недели по 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));  // true

Microtime для измерения производительности

Используйте 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() — текущая временная метка Unix
  • date($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 — локальная установка не требуется.

Все уроки этого курса

  1. Временные метки Unix и date()
  2. Класс DateTime
  3. Арифметика дат с DateInterval
  4. Часовые пояса в PHP
← Назад к PHP Academy