2016-10-20 2 views
-1

Я новичок в переполнении стека. Поэтому, пожалуйста, направляйте меня, если мой вопрос вам непонятен.Изменение даты и времени с именем месяца в слове

I have a datetime such as 2016-10-08 11:02:55. 
I need to convert it into like this 8 OCT 2016. 

У кого-нибудь есть идеи, как я могу получить его в этом формате. Это нужно делать в PHP.

Спасибо.

+1

'2016-10-08 11: 02: 55' не временная метка. То есть datetime – Mohammad

+0

да спасибо @Mohammad, я обновил вопрос. Спасибо –

+1

Позвольте мне рассказать вам: вы должны прочитать [ask] и [mcve]. Это полезно и позволяет понять, как задавать вопросы. Теперь это требует редактирования. – xenteros

ответ

4

Чтобы преобразовать целевую строку во времени и использовать date(), необходимо использовать strtotime(), чтобы конвертировать время в форму. Также strtoupper() конвертировать все символы в верхний регистр.

$x = "2016-10-08 11:02:55"; 
echo strtoupper(date("j M Y",strtotime($x))); 

Результат:

8 OCT 2016 

Рабочая DEMO

+0

У меня недостаточно репутации, чтобы проголосовать за ваше решение. Но это абсолютное решение. Благодарю. Я ценю. –

+1

Странно. Вы тот, кто разместил вопрос, чтобы вы могли просто щелкнуть значок 'check', чтобы отметить его как SOLVED. – Irvin

+0

Да, у меня есть ваше решение. Но мой голос будет иметь значение, как только я получу минимум 15 репутации. –

0

Самое замечательное PHP является то, что, как правило, больше, чем один из способов, чтобы получить желаемый результат, и этот принцип справедливо в этом случае тоже. Кроме того, можно написать следующий код:

<?php 

$date = new DateTime('2016-10-08 11:02:55'); 
echo strtoupper($date->format('j M Y')); 

См живой код here.

Преимущество этого решения заключается в том, что вы передаете строку в качестве параметра для инициализации нового объекта DateTime. Вы можете использовать этот объект, чтобы затем указать формат даты. Наконец, я использую strtouppe(), чтобы иметь имя месяца во всех кепках.

В справедливости, хотя, Руководство говорит, что метод формат этого объекта ограничен следующим образом:

Этот метод не использует локали. Вся продукция на английском языке.

PHP предоставляет класс DateTime другим способом, который можно статически вызывать для создания объекта DateTime. Если вы хотите, вы можете предоставить информацию о часовом поясе методу. Таким образом, еще один способ кодирования решения заключается в следующем:

<?php 
$date = DateTime::createFromFormat('Y-m-d g:i:s', "2016-10-08 11:02:55"); 
echo strtoupper($date->format('j M Y')); 

Смотрите в прямом эфире код here.

Смежные вопросы