L
L
lid2pro2015-03-01 13:08:15
PHP
lid2pro, 2015-03-01 13:08:15

How to make such a date and time format?

Hello, please tell me how to complete

$monthes = array(
    1 => ' января ', 2 => ' февраля', 3 => ' марта', 4 => ' апреля',
    5 => ' мая', 6 => ' июня', 7 => ' июля', 8 => ' августа',
    9 => ' сентября', 10 => ' октября', 11 => ' ноября', 12 => ' декабря'
);
  $date = $row['date'];
  $adate = date("j", strtotime($date)) . $monthes[date("n", strtotime($date))] . date("Y", strtotime($date)) . date("H:i", strtotime($date));

It outputs something like this:
January 11, 20155:52 PM

And I need this:
January 11, 2015, 03:52 pm

How to correctly indent (otherwise I put a space manually in the month array) and the letter "g"?
Thanks in advance

Answer the question

In order to leave comments, you need to log in

3 answer(s)
D
Denis Safronov, 2015-03-01
@lid2pro

Do it better like this:

$months = array(
    'Jan' => 'января', 'Feb' => 'февраля', 'Mar' => 'марта', 'Apr' => 'апреля',
    'May' => 'мая', 'Jun' => 'июня', 'Jul' => 'июля', 'Aug' => 'августа',
    'Sep' => 'сентября', 'Oct' => 'октября', 'Nov' => 'ноября', 'Dec' => 'декабря'
);
$date = str_replace(array_keys($months), array_values($months), date('j M Yг., H:i', strtotime($row['date'])));

F
FanatPHP, 2015-03-01
@FanatPHP

Who made this code for you?
In - found. I wrote about 10 years ago

echo rdate().'<br>';
echo rdate(0,'d \p Y года').'<br>';
$date = '2015-01-11 15:52:00';
echo rdate($date,'d \p Yг., H:i');


// \P (латиниская) - русское название месяца в именительном падеже
// \p (латиниская) - русское название месяца в родительном падеже
function rdate($date = 0, $format = '')
{
  if (!$date) $date = time();
  
  if (!ctype_digit((string)$date))
  {
  	$date = strtotime($date);
  }
  
  if (!$format) $format='d.m.y H:i';

  $rmon = array('январь','февраль','март','апрель',
                'май','июнь','июль','август','сентябрь',
                'октябрь','ноябрь','декабрь');
  $format = str_replace('\P',$rmon[date('n',$date)-1],$format);

  $rmon = array('января','февраля','марта','апреля',
                'мая','июня','июля','августа','сентября',
                'октября','ноября','декабря');
  $format=str_replace('\p',$rmon[date('n',$date)-1],$format);

  return date($format, $date);
}

S
Shaks, 2015-03-01
@shaks

$ php -a
Interactive mode enabled

php > setlocale(LC_TIME, 'ru_RU.UTF-8');
php > echo(strftime("%d %B %Yg., %H:%M", time()))."\n";
01 Март 2015g., 14:09
php >

a good option, only the month does not decline.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question