недействительное значение AllXsd

Я получил это от запроса клиента Soap:

Исключение: исключение SoapFault: [soap: Client] Сервер не смог прочитать запрос. —> В документе XML есть ошибка (2, 273). —> Строка '2010-5-24' не является допустимым значением AllXsd. in /path/filinet.php:21 Трассировка стека: # 0 [внутренняя функция]: SoapClient -> __ call ('SubIdDetailsByO …', Array) # 1 /path/filinet.php(21): SoapClient-> SubIdDetailsByOfferId ( Массив) # 2 {main}

Похоже, что я посылаю неверное значение, как мне отформатировать мое значение в AllXsd в php?

Вот мой код:

<?php $start = isset($_GET['start']) ? $_GET['start'] : date("Ymd"); $end = isset($_GET['end']) ? $_GET['end'] : date("Ymd"); //define parameter array $param = array('userName'=>'user', 'password'=>'pass', 'startDate' => $start, 'endDate' => $end, 'promotionId' => ''); //Get wsdl path $serverPath = "https://webservices.filinet.com/affiliate/reports.asmx?WSDL"; //Declare Soap client $client = new SoapClient($serverPath); try { //make the call $result = $client->SubIdDetailsByOfferId($param); //If error found display error if(isset($fault)) { echo "Error: ". $fault; } //If no error display response else { //Used to display raw XML in the Web Browser header("Content-Type: text/xml;"); //SubIdDetailsResult = XML results echo $result->SubIdDetailsByOfferIdResult; } } catch(SoapFault $ex) { echo "<b>Exception:</b> ". $ex; } unset($client); ?> 

Значения AllXsd выглядят примерно так: IIRC

2010-05-24T18: 13: 00

Вам необходимо использовать дату формата date('c', strtotime($my_date)); ISO 8601 date('c', strtotime($my_date));

http://php.net/date

 // set the default timezone to use. Available since PHP 5.1 date_default_timezone_set('UTC'); // get the date $startDate = date("Ymd") . 'T' . date("H:i:s"); 

Вырезать погоню и использовать

 date('c'); 

Проблема связана с форматом даты либо $ start, либо $ end. Вместо того, чтобы просто захватывать данные из строки запроса с помощью $ _GET и пересылать их, вам необходимо выполнить проверку целостности, чтобы убедиться, что дата соответствует требуемому формату

 2010-05-24T13:46:00 

Вместо использования даты («Ymd») попробуйте использовать:

 $startDate = date("Ymd") . 'T' . date("H:i:s");