Вывод даты с русскими месяцами

PHP-функция для вывода даты в привычном формате из метки unix timestamp.

  1. function date_ru($timestamp, $show_time = false)
  2. {
  3. if (empty($timestamp)) {
  4. return '-';
  5. } else {
  6. $now = explode(' ', date('Y n j H i'));
  7. $value = explode(' ', date('Y n j H i', $timestamp));
  8.  
  9. if ($now[0] == $value[0] && $now[1] == $value[1] && $now[2] == $value[2]) {
  10. return 'Сегодня в ' . $value[3] . ':' . $value[4];
  11. } else {
  12. $month = array(
  13. '', 'января', 'февраля', 'марта', 'апреля', 'мая', 'июня',
  14. 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'
  15. );
  16. $out = $value[2] . ' ' . $month[$value[1]] . ' ' . $value[0];
  17. if ($show_time) {
  18. $out .= ' в ' . $value[3] . ':' . $value[4];
  19. }
  20. return $out;
  21. }
  22. }
  23. }

Если с даты прошел день, то выводится только время, далее дата с месяцем и годом.
  1. echo date_ru(time() - 60); // Сегодня в 19:43
  2. echo date_ru(1549682408); // 9 февраля 2019
  3. echo date_ru(1549682408, true); // 9 февраля 2019 в 06:20
  4. echo date_ru(0); // -

Версия со сокращенными месяцами
  1. function date_ru($timestamp, $show_time = false)
  2. {
  3. if (empty($timestamp)) {
  4. return '-';
  5. } else {
  6. $now = explode(' ', date('Y n j H i'));
  7. $value = explode(' ', date('Y n j H i', $timestamp));
  8.  
  9. if ($now[0] == $value[0] && $now[1] == $value[1] && $now[2] == $value[2]) {
  10. return 'Сегодня в ' . $value[3] . ':' . $value[4];
  11. } else {
  12. $month = array(
  13. '', 'янв', 'фев', 'мар', 'апр', 'май', 'июн',
  14. 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек'
  15. );
  16. $out = $value[2] . ' ' . $month[$value[1]] . ' ' . $value[0];
  17. if ($show_time) {
  18. $out .= ' в ' . $value[3] . ':' . $value[4];
  19. }
  20. return $out;
  21. }
  22. }
  23. }


  14.01.24 / 15:55 | PHP |   54 | 0   1