В день участника WordCamp Nordic у меня была возможность поговорить с Андреем «Рарстом» Савченко о компоненте даты / времени WordPress , коде, который управляет функциями даты, времени и часового пояса. Савченко – один из разработчиков этого менее известного компонента, который включает код, восходящий к PHP 4 раза. После многих лет волонтерской работы на форумах WordPress Stack Exchange он столкнулся с одними из самых серьезных ошибок даты / времени, что в конечном итоге побудило его заняться улучшением кода.
«Оттуда началось медленное погружение в безумие компонента», – сказал Савченко. «Большая часть моего опыта попала в мою библиотеку WpDateTime . К прошлому году я, наконец, был уверен, что хорошо понимаю масштабы проблемы и путь вперед для ядра ».
Проблемы с датой и временем влияют как на разработчиков, так и на пользователей. Савченко сказал, что большинство проблем по объему связано с некорректным выводом локализованного времени с помощью `date_i18n ()`. Эти вещи могут попасть в руки пользователей и повлиять на планирование публикации, запросы и другие операции.
«Некоторые из них представляют собой явные ошибки, а некоторые легко исправить из-за несовместимости с временными метками Unix», – сказал Савченко. «Но у многих других частей ядра есть проблемы, связанные со временем – чаще всего с часовыми поясами и переходом на летнее время. Сообщения могут оканчиваться неправильным временем, не публиковаться при необходимости, сортироваться в неправильном порядке и т. д. ”
Требование обратной совместимости замедляет прогресс, но Савченко и другие участники отправили часть своей работы в самый последний выпуск WordPress. У них будет больше доступных решений, когда будет повышена минимально необходимая версия PHP.
«В WordPress 5.1 мы отправили набор важных исправлений для документации и некоторые из наихудших ошибок в` date_i18n () ` .
«На данный момент мы продолжаем работать над нерешенными проблемами и готовимся к реализации ряда основных новых функций API . Работа над компонентом также оживила обсуждение введения часовых поясов пользователя . Однако я думаю, что им нужно много работать над UX, чтобы разработать работоспособное предложение ».
Посмотрите видео ниже, чтобы получить краткий обзор работы, проделанной над компонентом Date / Time, и узнать, как вы можете принять участие в канале # core-datetime в WordPress Slack.
^