Преобразование даты в формате PHP в формат XMLGregorianCalendar и обратно

Я вызываю веб-службу SOAP, которая ожидает получить дату/время в формате XMLGregorianCalendar. Так, например, мне нужно будет преобразовать ГГГГ-ММ-ДД ЧЧ:ММ:СС в этот формат.

Когда я извлекаю данные из веб-службы, мне нужно преобразовать дату/время из формата XMLGregorianCalendar в ГГГГ-ММ-ДД ЧЧ:ММ:СС.

Обычно я публикую некоторый код, который пробовал, но, честно говоря, у меня возникли проблемы с поиском чего-либо, даже чтобы начать работу с PHP. Поэтому мои извинения за отсутствие примера кода. ДЕЙСТВИТЕЛЬНО оценил бы любое руководство.


person Jason    schedule 26.06.2014    source источник


Ответы (1)


Формат даты, используемый в XML, — ISO-8601. Вы можете использовать strftime, чтобы преобразовать его в отметку времени и дату Unix, чтобы преобразовать его обратно в приятный для чтения укус.

Эта строка формата может пригодиться:

  • Образец "Г-м-д Н:и:с": "2014-06-27 20:14:49"
  • образец "c": "2014-06-27T20:14:49+00:00"

Вы можете проверить поддерживаемые форматы времени strtotime здесь: http://de3.php.net/manual/en/function.strtotime.php

И синтаксис для даты здесь: http://www.php.net/manual/en/function.date.php

$date = date("Y-m-d H:i:s", strtotime($date)); // Output as datetime used in SQL 
$date = date("c", strtotime($date)); // Output as datetime used in XML 
person ToBe    schedule 26.06.2014
comment
Спасибо. Ожидаемый формат даты/времени: 2014-07-26T10:29:26.163-06:00 Я понимаю, что такое все, кроме T и .163. Предполагая, что T просто обозначает начало времени. Не знаете, что такое .163? - person Jason; 26.06.2014
comment
Это нормальный формат времени iso-8601. St r to time может отлично разобрать это, и date (c) снова выведет его. Проверьте документ на дату. - person ToBe; 26.06.2014
comment
Ах, имеет смысл - действительно ценю это. - person Jason; 26.06.2014