DateHumanizer — PHP-класс, который принимает на вход одну или две даты и возвращает строковую в человеческом формате. Например, на «2015-01-01, 2015-01-02» класс вернет «1—2 января 2015». Или даже «1—2 января», если речь едёт про текущий год.
У меня раньше часто была необходимость в таком заботливом и аккуратном рендеринге. Я решил ради спортивного интереса написать класс, который покроет все эти кейсы. Получился DateHumanizer. Как он работает и что умеет — расписано на Гитхабе. Там же есть описание известных проблем и планов на будущее.
Я, например, не уверен в том, что у меня получилось элегантно закрыть вопрос с локализацией на другие языки. И вообще, мне кажется, любой опытный программист легко найдет сто способов все оптимизировать и улучшить. Поэтому я рад любым советам и пулл-реквестам.
Идеи и помощь
Есть пару идей, которые я не смог реализовать. Если вы увидите в моём классе пользу и захотите мне помочь, то вот мои открытые вопросы.
- Было бы здорово улучшить локализацию. Сейчас она не очень и не решен вопрос с порядком слов в разных языках: «25 марта 1918» и «March 25, 1918».
- Случай, когда в класс передано больше двух дат, и нужно рендерить список.