2013-05-01 11 views
5

Mam kłopoty, gdzie kodowałem połączenie za pomocą OpenX API z XML-RPC2. Pojawia się problem, że typ danych jest wymagany przez funkcję ognia, to dateTime.iso8601.Czy można zmienić typ danych z String na Date

To jest mój kod:

$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()); 
} 

ta jest wynikiem błędu, gdy uruchamiam skrypt powyżej:

Wyjątek # 3: Nieprawidłowe parametry przekazywane do metody: Poszukują dateTime.iso8601, dostał ciąg na param 3

Jeśli biegnę print_r(gettype($startDate)); uzyskać dane typ jest string nie data.

Moje pytanie, dla zmiennych $startDate i $endDate Jak zrobić swój typ danych będzie dateTime.iso8601 lub date zamiast string.

Dzięki.

+0

nie wiem tego API bardzo dobrze, ale jak tylko o przekazanie obiektu $ sdatetime? – nvanesch

+0

Witam @nvanesch Skończyłem ten link http://pear.php.net/manual/en/package.webservices.xml-rpc2.client.php, dziękuję za pomoc. –

Odpowiedz

1

Wygląda na to, że Twoja agencjaPublisherStatistics wymaga określonego obiektu daty XML_RPC2_Value. Anulujesz to używając.

$startDate = XML_RPC2_Value::createFromNative($startDate, ‘datetime’); 

samo dla daty końcowej .. daj mi znać, jeśli to działa ..

+0

Skończyłem z tym łączem http://pear.php.net/manual/en/package.webservices.xml-rpc2.client.php, dziękuję za wskazówkę. –

1

Spróbuj tego,

$sdatetime = date(DATE_ISO8601, strtotime('2013-01-01 00:00:00')); 
$edatetime = date(DATE_ISO8601, strtotime('2013-06-01 00:00:00')); 

LUB

Sprawdź poniżej linków,

http://pear.php.net/manual/en/package.webservices.xml-rpc2.client.php

https://bugs.php.net/bug.php?id=51950

może ci to pomóc.

+0

Niestety nie działa, zwróci dane typu jako ciąg znaków, mam rozwiązanie z tym łączem http://pear.php.net/manual/en/package.webservices.xml-rpc2.client.php –

+0

Nie, ponieważ dla odniesienia innych ludzi, dam jedną dla twojej odpowiedzi. Dzięki. –

+0

Bez problemu człowiek, może inne osoby mają problem z błędami serwera php, ponieważ twoja odpowiedź zawiera odnośnik do błędu. –

0

użycie 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); 
+0

Skończyłem z tym łączem http://pear.php.net/manual/en/package.webservices.xml-rpc2.client.php, dzięki za pomoc. –

Powiązane problemy