У меня есть строка, как указано ниже:
$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 ().