#php #datetime #gregorian-calendar
#php #datetime #григорианский календарь
Вопрос:
Я вызываю веб-службу SOAP, которая ожидает получения даты / времени в формате XMLGregorianCalendar. Так, например, мне нужно было бы преобразовать ГГГГ-ММ-ДД ЧЧ: ММ: СС в этот формат.
Когда я извлекаю данные из веб-службы, мне нужно будет преобразовать дату / время из формата XMLGregorianCalendar в ГГГГ-ММ-ДД ЧЧ: ММ: СС.
Обычно я бы опубликовал некоторый код, который я пробовал, но, честно говоря, у меня возникли проблемы с поиском чего-либо, что помогло бы мне начать работу с PHP. Итак, мои извинения за отсутствие примера кода. Был бы ОЧЕНЬ признателен за любые рекомендации.
Ответ №1:
Формат даты, используемый в XML, — ISO-8601. Вы можете использовать strftime для преобразования его в временную метку Unix и дату, чтобы преобразовать его обратно в приятный для чтения формат.
Эти строки формата могут пригодиться:
- «Y-m-d H: i: s» пример: «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
Комментарии:
1. Спасибо. Это формат даты / времени, который они ожидают:
2014-07-26T10:29:26.163-06:00
я понимаю, что такое все, кроме T и .163. Предполагая, что T просто обозначает начало времени. Не уверен, что такое .163?2. Это обычный формат времени iso-8601. St r в time может отлично проанализировать это, и date («c») снова выведет его. Проверьте документ на дату.
3. Ах имеет смысл — действительно ценю это.