xsd:date类型的值无效

I'm getting follwing error when try to send some data to Salesforce using SOAP connector.

'0000-00-00' is not a valid value for the type xsd:date'

This happen when the date input is invalid or empty. I can send some correct date like '2000-10-10' to avoid the error. But its not correct. So i need to make that field NULL. Same error thrown even when i pass NULL.

I tried fieldsToNull as well. But it didn't work.

I'm using Salesforce Enterprise WSDL.

$records = array();
$records[0] = new \stdclass();

$records[0]->Date_of_Birth__c = (!empty($date_of_birth)) ? $date_of_birth : '0000-00-00';
$this->client->create($records, 'Profile__c');

How to overcome this issue ?

As you're doing create you can just skip setting that field if you don't have a value for it, e.g.

$records = array();
$records[0] = new \stdclass();
if (!empty($date_of_birth))
    $records[0]->Date_of_Birth__c = $date_of_birth;

$this->client->create($records, 'Profile__c');