форматирование даты в php

У меня есть строка, как указано ниже:

$ts = "3/11/09 11:18:59 AM"; which I have got using date() function 

Теперь мне нужно преобразовать это в читаемый формат, как показано ниже

 11-Mar-2009 

Я пробовал все, используя date ()

Может кто-то, пожалуйста, помогите мне с этим?

Вам нужно преобразовать его в то, что вы можете использовать для дальнейшего форматирования. strtotime () – хороший старт, который дает временную метку unix. Вы можете отформатировать этот, используя strftime () .

 strftime("%d-%b-%G", strtotime($ts)); 

На самом деле я пытался это сделать, и это сработало.

 echo date("dMY", strtotime($ts)); 

Если вы сначала получите строку из функции date (), тогда вместо этого передайте аргументы форматирования функции date:

Дата ( 'Ут-d')

вместо того, чтобы преобразовать строку еще раз.

EDIT: Если вам нужно отслеживать фактическую метку времени, сохраните ее как временную метку:

  
 // Храните метку времени в переменной.  Это всего лишь целое число, временная отметка unix (секунды с эпохи)
 $ time = time ();

 // выводить ISO8601 (возможно, вставить в базу данных?) 
 echo date ('Ymd H: i', $ time);

 // выводим ваш читаемый формат
 echo date ('jM-Y', $ time);

Использование strtotime () удобно, но необязательный синтаксический анализ и хранение представления времени – это глупая идея.

Вы можете использовать функцию date () для создания требуемого формата напрямую, например:

 date("jMY"); 

См. http://Www.php.net/date для всех возможных форматов вывода функции date ().