2013-05-01 22 views
5

Tôi gặp sự cố khi tôi mã hóa kết nối bằng API OpenX với XML-RPC2. Tôi nhận được vấn đề rằng kiểu dữ liệu được yêu cầu bởi hàm lửa là dateTime.iso8601.Có thể thay đổi kiểu dữ liệu từ Chuỗi thành Ngày

Đây là mã của tôi:

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

này được kết quả lỗi, khi tôi chạy script trên:

Exception # 3: Không đúng thông số truyền cho phương pháp: Wanted dateTime.iso8601, có chuỗi tại thông số 3

Nếu tôi chạy print_r(gettype($startDate)); Tôi nhận dữ liệu loại là chuỗi không ngày.

Câu hỏi của tôi, cho các biến $startDate$endDate làm thế nào để làm cho kiểu dữ liệu của họ được dateTime.iso8601 hay date hơn string.

Cảm ơn.

+0

Tôi không biết api này rất tốt, nhưng làm thế nào về chỉ đi qua các đối tượng $ sdatetime? – nvanesch

+0

Xin chào @nvanesch Tôi đã hoàn thành với liên kết này http://pear.php.net/manual/en/package.webservices.xml-rpc2.client.php, cảm ơn vì đã giúp tôi. –

Trả lời

1

có vẻ như agencyPublisherStatistics của bạn yêu cầu đối tượng ngày XML_RPC2_Value cụ thể. Bạn có thể tạo điều này bằng cách sử dụng.

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

tương tự cho ngày kết thúc .. cho tôi biết nếu làm việc này ..

+0

Tôi đã hoàn thành với liên kết này http://pear.php.net/manual/en/package.webservices.xml-rpc2.client.php, cảm ơn bạn đã biết. –

1

Hãy thử điều này,

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

HOẶC

Kiểm tra bên dưới liên kết,

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

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

điều này có thể giúp bạn.

+0

Xin lỗi không hoạt động, nó sẽ trả về dữ liệu kiểu như chuỗi, tôi đã giải quyết với liên kết này http://pear.php.net/manual/en/package.webservices.xml-rpc2.client.php –

+0

Không, bởi vì để tham khảo những người khác, tôi sẽ đưa ra một câu trả lời cho bạn. Cảm ơn. –

+0

Không có vấn đề gì người đàn ông, có lẽ những người khác đã gặp vấn đề trong các lỗi máy chủ php, bởi vì câu trả lời của bạn có liên kết tham chiếu đến lỗi này. –

0

sử dụng 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

Tôi đã hoàn thành với liên kết này http://pear.php.net/manual/en/package.webservices.xml-rpc2.client.php, cảm ơn vì đã giúp tôi. –

Các vấn đề liên quan