×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Language: PHP
Posted by: Сергей Шевченко
Added: Jan 12, 2018 4:10 PM
Views: 2
Tags: date format zend
  1. public function formatDate($date, $withTime = false, $today = false, $monthDigit = false, $separator = '.')
  2. {
  3.     $listMonth = array(
  4.         1 => _('января'),
  5.         2 => _('февраля'),
  6.         3 => _('марта'),
  7.         4 => _('апреля'),
  8.         5 => _('мая'),
  9.         6 => _('июня'),
  10.         7 => _('июля'),
  11.         8 => _('августа'),
  12.         9 => _('сентября'),
  13.         10 => _('октября'),
  14.         11 => _('ноября'),
  15.         12 => _('декабря'),
  16.     );
  17.  
  18.     $date = explode(' ', $date);
  19.  
  20.     $time = '';
  21.     if ($withTime && isset($date[1])) {
  22.         // с секундами
  23.         // $time = ' в ' . str_replace(',', '', $date[1]);
  24.         // без секунд
  25.         $time = str_replace(',', '', $date[1]);
  26.         $time = str_replace(',', '', $date[1]);
  27.         $time = explode(':', $time);
  28.         $time = ' в ' . $time[0] . ':' . $time[1];
  29.     }
  30.  
  31.     $date = $date[0];
  32.  
  33.     $created = new Zend_Date($date, 'yyyy.MM.dd');
  34.  
  35.     if ($today && $created->isYesterday()) {
  36.         $date = 'вчера';
  37.     } elseif ($today && $created->isToday()) {
  38.         $date = 'сегодня';
  39.     } elseif ($today && $created->isTomorrow()) {
  40.         $date = 'завтра';
  41.     } else {
  42.         $date = explode('-', $date);
  43.         if (count($date) != 3) {
  44.             return false;
  45.         }
  46.         // $date = $date[2] . ' ' . $listMonth[(int) $date[1]] . ' ' . $date[0];
  47.         // $separator = '.';
  48.         if (!$monthDigit) {
  49.             $separator = ' ';
  50.             $date[1] = $listMonth[(int) $date[1]];
  51.         }
  52.         foreach ($date as $key => $value) {
  53.             if (!(int) $value && !in_array($value, $listMonth)) {
  54.                 unset($date[$key]);
  55.             }
  56.         }
  57.         $date = implode($separator, array_reverse($date));
  58.         // $date = $date[2] . $separator . $date[1] . $separator . $date[0];
  59.     }
  60.  
  61.     $result = $date . $time;
  62.     return $result;
  63. }