TGViewer
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter @phpproglib · 10.5K subscribers
Post #5342 2.69K
♾️ Решайте проблемы правильным способом: Использование инфраструктуры вместо быстрых решений

При импорте CSV-файлов в базу данных возникла проблема с обработкой дат. Для работы с датами использовалась стандартная библиотека Carbon, однако в некоторых случаях парсер вел себя неожиданно. Если дата была указана в формате месяц/день (например, 11/11), Laravel автоматически добавлял текущий год, превращая запись в 2025-11-11. Ожидаемое поведение отличалось — дата без года должна оставаться в исходном виде.

Поиск решения

Сначала были рассмотрены стандартные подходы, включая использование регулярных выражений для проверки формата даты (YYYY-MM-DD, MM/DD/YYYY и другие). Однако такой метод оказался сложным в реализации, поскольку поддержка всех возможных форматов потребовала бы значительных усилий.

Далее было изучено, как сам Laravel выполняет валидацию дат. Оказалось, что он использует две встроенные функции PHP:

date_parse() — анализирует строку и возвращает массив с разобранными данными (год, месяц, день).

checkdate() — проверяет корректность даты.
Финальное решение

Было принято решение заменить Carbon::parse() на комбинацию date_parse() и checkdate(), чтобы обработка дат стала более точной.

Этот случай демонстрирует, что прежде чем разрабатывать сложные решения, стоит изучить, какие методы уже предлагает сам Laravel и PHP. Такой подход экономит время, упрощает поддержку кода и делает его более надежным.

💬Читать подробнее
  • 🥱 9
  • 👍 1
  • 😢 1
More from @phpproglib
  1. Sep 30, 2026🔥 Последний день для разработчиков AI уже пишет код. Теперь важнее научиться встраивать е…
  2. Sep 30, 2026🐸 Библиотека пхпшника
  3. Sep 29, 2026💡 Laravel-фича, которая спасает тесты от случайных запросов Http::preventStrayRequests()…
  4. Sep 28, 2026🔐 ramsey/uuid — UUID без самописного кода Библиотека помогает генерировать, парсить и вал…
  5. Sep 28, 2026🤔 Что выведет код? ❤️ — 1 🔥 — 2 👍 — 12 👾 — Fatal error 👇 Правильный ответ (нажми, что…
  6. Sep 25, 2026🌞 PHP умеет искать в массиве без foreach В PHP 8.4 появились array_find(), array_find_key…
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 →