Tip: SOAP datetime var issues

In SOAP webservices datetime vars can break your webservice when you use datetime values from an ActiveRecord model without modifying them. Yii @var datetime will be mapped to SOAP xsd:dateTime, which only accepts dates in ISO 8601 format (see books.xmlschemata.org/relaxng/ch19-77049.html and date(‘c’) php.net/date ). Active record returns datetime values as ‘Y-m-d H:i:s’ by default, which is invalid for xsd:dateTme

You can easily fix this by modifying the value in the model’s afterFind() method.


Class Object extends SomeModel // with SomeModel being an activeRecord model.



     * @var datetime dateTimeVar

     * @soap


    public $dateTimeVar;

    public function afterFind() {



            $this->dateTimeVar = date('c', strtotime($this->dateTimeVar));