Можно ли изменить тип данных из строки в дату
У меня возникли проблемы, когда я кодировал соединение с помощью OpenX API с XML-RPC2. Я получаю проблему, что тип данных, необходимый для функции fire, - это dateTime.iso8601.
Вот мой код:
$sdatetime = new DateTime('2013-01-01 00:00:00');
$edatetime = new DateTime('2013-06-01 00:00:00');
$startDate = $sdatetime->format(DateTime::ISO8601);
$endDate = $edatetime->format(DateTime::ISO8601);
try {
$result = $aClient->agencyPublisherStatistics($sessionId, 1, $startDate, $endDate);
print_r($result);
} catch (XML_RPC2_FaultException $e) {
die('Exception #' . $e->getFaultCode() . ' : ' . $e->getFaultString());
}
Это ошибка результата, когда я запускаю скрипт выше:
Исключение №3: Неверно параметры, переданные методу: Wanted dateTime.iso8601, получил строку на param 3
Если я запускаю print_r(gettype($startDate));
, я получаю данные типа string not дата .
Мой вопрос, для переменных $startDate
и $endDate
Как сделать их тип данных dateTime.iso8601
или date
, а не string
.
Спасибо.
3 ответа:
Похоже, что для agencyPublisherStatistics требуется определенный объект даты XML_RPC2_Value. Вы можете создать это с помощью.
$startDate = XML_RPC2_Value::createFromNative($startDate, ‘datetime’);
То же самое для даты окончания.. дайте мне знать, если это сработает..
Попробуйте это,
$sdatetime = date(DATE_ISO8601, strtotime('2013-01-01 00:00:00')); $edatetime = date(DATE_ISO8601, strtotime('2013-06-01 00:00:00'));
Или
Проверьте ссылки ниже,
Http://pear.php.net/manual/en/package.webservices.xml-rpc2.client.php
Https://bugs.php.net/bug.php?id=51950
Пусть это поможет вам.