Я не думаю, что это неправильное время. PHP получает «совсем нет времени», а значение времени, которое вы видите, является значением по умолчанию. Начало эпохи, как говорится. Независимо от того, какую ценность вы отправите, это всегда будет в одно и то же время. Это произойдет, если формат XML, отправляемого по проводам, не соответствует ожиданиям клиента PHP. На самом деле это верно для любой пары взаимодействующих платформ, а не только для C # и PHP.
Когда вы используете прокси-библиотеку веб-службы, код неявно отображает входящие и исходящие переменные во входящие и исходящие XML-документы (или, точнее, XML-фрагменты). Иногда приложения выполняют XML-сериализацию явно, но стеки веб-сервисов делают это неявно.
Существует множество причин, по которым десериализация XML не удалась бы на стороне клиента. По моему опыту, наиболее распространенной причиной является простое несоответствие пространства имен XML. Разница в одной косой черте в пространстве имен между клиентом и сервером означает, что XML не одинаков. Однажды я помог клиенту, который несколько дней боролся с проблемой десериализации XML, подобной этой. Оказывается, в одном пространстве имен на его сервере отсутствовала косая черта - кто-то невинно обрезал его по эстетическим соображениям.
Помимо несоответствий имен элементов XML и пространства имен, форматы даты и времени являются известным источником проблем взаимодействия в веб-службах. Это потому, что есть так много способов отформатировать время. Является ли 2006-июнь-14 таким же, как 2006/06/14? Означает ли 4/7/2007 4 июля или 7 апреля? Помимо вопросов форматирования, вы должны заботиться об относительном значении значения времени. Это UTC? Местное время? Если это местный, как вы указываете значение часового пояса?
Если у кого-то еще есть эта проблема, вот что вы можете сделать, чтобы помочь разобраться:
установить отладочный http прокси между сервисом и клиентом. Как Fiddler2 , или Charles , или Burp или proxyTrace . Таким образом, вы можете проверить XML на проводе, что поможет вам понять, почему приложение PHP не дает желаемого результата.
Часто, когда у меня возникают эти глюки взаимодействия, я настраиваю фиктивную службу, используя однородный клиент и сервер. В вашем случае это будет PHP-клиент, говорящий с PHP-сервером. Используя прокси-сервер отладки, посмотрите на трафик, генерируемый сервером PHP, который правильно принят клиентом PHP. Вам придется дублировать это в любом другом сервисе. Затем вы можете использовать прокси-сервер для проверки того, что контент, предоставляемый вашими реальными сервисами, соответствует тому, что ожидает PHP.