Формат даты до ISO.8601 - PullRequest
       28

Формат даты до ISO.8601

1 голос
/ 20 декабря 2011

Я работаю с WordPress XMLRPC, чтобы публиковать некоторые будущие посты в моем блоге, но у меня возникают некоторые проблемы с форматированием даты ... в основном я полностью расстроен:)

Так что я 'Мы установили «будущую» дату публикации.Это просто отлично.

$thetime = date("Y-m-d H:i:s", strtotime("+ $number days", strtotime(date("Y-m-d H:i:s"))));

($ thetime выводит дату, для которой я снимаю - так что все хорошо здесь)

Но клиент wp хочет дату в формате ISO.8601,Поэтому я изменил это следующим образом:

$content['date_created'] = date( 'c', strtotime($thetime) );

Но я получаю ответ от клиента xml-rpc, что он искажен.

Итак, как бы вы изменили $ thetime на iso?Формат .8601, так как я думал, что это то, что делает с?Я что-то не так делаю?

Ответы [ 2 ]

3 голосов
/ 20 декабря 2011

Сначала проверьте выведенную строку и убедитесь, что результат соответствует ожидаемому.Там может быть совершенно не связанная ошибка (например, забытая отладка echo).

В некоторых реализациях может потребоваться, чтобы дата была в формате UTC.Просто используйте gmdate вместо date и добавьте Z в конце:

$content['date_created'] = gmdate('Y-m-d\\TG:i:s\\Z', strtotime($thetime)) . 'Z';
0 голосов
/ 03 марта 2016

В соответствии со спецификациями XMLRPC дата и время определены в этом теге <dateTime.iso8601> и имеют этот формат 19980717T14: 08: 55.Таким образом, полный тег выглядит следующим образом:
<dateTime.iso8601>20090322T23:43:03</dateTime.iso8601>

Это распространенная ошибка при использовании функции php xmlrpc_encode_request(), которая не выполняет автоматическое преобразование даты.Вместо этого используйте функцию xmlrpc_set_type().

<?php

$params = date("Ymd\TH:i:s", time());
xmlrpc_set_type($params, 'datetime');
echo xmlrpc_encode($params);

?>

В приведенном выше примере будет выведено что-то похожее на:

<?xml version="1.0" encoding="utf-8"?>
<params>
<param>
 <value>
  <dateTime.iso8601>20090322T23:43:03</dateTime.iso8601>
 </value>
</param>
</params>
...