Можно ли изменить тип данных из строки в дату


У меня возникли проблемы, когда я кодировал соединение с помощью 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 5

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

Пусть это поможет вам.

Использовать DateTime::setISODate

$sdatetime = new DateTime('2013-01-01 00:00:00');
$edatetime = new DateTime('2013-06-01 00:00:00');

$startDate = $sdatetime->setISODate(2013);
$endDate = $edatetime->setISODate(2013);