TGViewer
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter @phpproglib · 10.5K subscribers
Post #6475 1.69K
🗓 Когда date() достаточно, а когда нет

Большинство статей про форматирование дат сводятся к таблице токенов. Но реальный вопрос не «какой символ за что отвечает», а когда использовать date(), а когда DateTimeImmutable.

🔹 date() для быстрых задач

echo date('Y-m-d H:i:s');
echo date('Y-m-d', 1710938096);


Скрипты, логи, простой вывод — здесь date() вполне уместна. Она форматирует Unix timestamp, опираясь на системную timezone.

🔹 DateTimeImmutable для всего остального

$date = new DateTimeImmutable('2026-03-20 14:30:45', new DateTimeZone('Europe/Paris'));
echo $date->format('Y-m-d H:i:s T');
// 2026-03-20 14:30:45 CET

echo $date->setTimezone(new DateTimeZone('America/New_York'))->format('Y-m-d H:i:s T');
// 2026-03-20 09:30:45 EDT


Timezone живёт внутри объекта, а не берётся из глобального контекста. Это критично, когда в проекте есть очереди, API, мультирегиональность или локаль пользователя.

🔹 date_format() просто обёртка

date_format($date, 'Y-m-d'); // то же самое, что $date->format('Y-m-d')


Процедурный стиль для тех, кто не может расстаться с PHP 5-мышлением

🔹 Готовые форматы на каждый день

// Хранение в БД / логи
$date->format('Y-m-d H:i:s');

// ISO 8601 / API
$date->format('c'); // или DATE_ATOM

// Человекочитаемый
$date->format('d F Y'); // 20 March 2026

// 12-часовой формат
$date->format('g:i A'); // 2:30 PM


🔹 Экранирование в строке формата

Буквы a, t, m и другие — зарезервированные токены. Если нужен литерал, экранируй бэкслешем:

echo date('Y-m-d \a\t H:i', 1710938096);
// 2024-03-20 at 12:34
  • ❤ 3
  • 👍 3
  • 🔥 1
More from @phpproglib
  1. Sep 21, 2026⚡️ PHP 8.6 выйдет 19 ноября 2026 года. Сейчас версия находится в beta. Самые заметные изме…
  2. Sep 20, 2026❓ Какие существуют проблемы в многопоточной среде? Основные проблемы многопоточности: 1️⃣…
  3. Sep 19, 2026🌞 В Symfony 8.2 появилось 29 новых Bundle — теперь компоненты вроде Mailer, Messenger и C…
  4. Sep 19, 2026А вы уже забрали свой подарок ко Дню программиста? К вашему профессиональному празднику Tp…
  5. Sep 18, 2026🐸 Библиотека пхпшника
  6. Sep 17, 2026🛠 `str_contains` и семья: проверяем строки без ловушек Проверка через strpos годами путал…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →