From: mike at silverorange dot com Operating system: CentOS or RHEL PHP version: 5.3.26 Package: Date/time related Bug Type: Bug Bug description:DateTime subclasses cant use custom serializer
Description: ------------ If a DateTime subclass implements Serializable it cant be unserialized. A PHP warning is raised when restoring the time zone is attempted. Test script: --------------- class MyDate extends DateTime implements Serializable { public function serialize() { $data = array( $this->getTimestamp(), $this->dateTimezone()->getName() ); return serialize($data); } public function unserialize($data) { $data = unserialize($data); $this->setTimestamp($data[0]); $this->setTimezone(new DateTimeZone($data[1])); } } $d = new MyDate('2013-01-01', new DateTimeZone('UTC')); echo unserialize(serialize($d))->format('c'); Expected result: ---------------- 2013-01-01T00:00:00+00:00 Actual result: -------------- Warning: DateTime::setTimezone(): The DateTime object has not been correctly initialized by its constructor -- Edit bug report at https://bugs.php.net/bug.php?id=65151&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=65151&r=trysnapshot54 Try a snapshot (PHP 5.3): https://bugs.php.net/fix.php?id=65151&r=trysnapshot53 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=65151&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=65151&r=fixed Fixed in release: https://bugs.php.net/fix.php?id=65151&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=65151&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=65151&r=needscript Try newer version: https://bugs.php.net/fix.php?id=65151&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=65151&r=support Expected behavior: https://bugs.php.net/fix.php?id=65151&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=65151&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=65151&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=65151&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=65151&r=php4 Daylight Savings: https://bugs.php.net/fix.php?id=65151&r=dst IIS Stability: https://bugs.php.net/fix.php?id=65151&r=isapi Install GNU Sed: https://bugs.php.net/fix.php?id=65151&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=65151&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=65151&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=65151&r=mysqlcfg