Edit report at https://bugs.php.net/bug.php?id=49188&edit=1
ID: 49188 Comment by: will dot sskates at ntlworld dot com Reported by: niklas at narhinen dot net Summary: DateTime::__construct should allow a DateTime-object to be passed as argument Status: Open Type: Feature/Change Request Package: Date/time related PHP Version: 5.2.10 Block user comment: N Private report: N New Comment: You can pass the time string instead. What is the use case for this? Previous Comments: ------------------------------------------------------------------------ [2009-08-07 08:18:54] niklas at narhinen dot net Description: ------------ DateTime::__construct should allow a DateTime object to be passed as parameter to emulate good object desing (Copy constructor). This wouldn't break anything. Reproduce code: --------------- <?php date_default_timezone_set('Europe/Helsinki'); class MyClass { private $myDateTime; public function setTime($datetime = null) { $this->myDateTime = new DateTime($datetime); } public function getTime($format = "Y-m-d") { return $this->myDateTime->format($format); } } $class = new MyClass(); $class->setTime("7.8.2009"); var_dump($class->getTime()); $class->setTime(null); var_dump($class->getTime()); $dt = new DateTime('15.5.2005'); $class->setTime($dt); var_dump($class->getTime()); ?> Expected result: ---------------- string(10) "2009-08-07" string(10) "2009-08-07" string(10) "2005-05-15" Actual result: -------------- string(10) "2009-08-07" string(10) "2009-08-07" PHP Fatal error: Uncaught exception 'Exception' with message 'DateTime::__construct() expects parameter 1 to be string, object gi ven' in D:\temp\php\datetime.php:7 Stack trace: #0 D:\temp\php\datetime.php(7): DateTime->__construct(Object(DateTime)) #1 D:\temp\php\datetime.php(17): MyClass->setTime(Object(DateTime)) #2 {main} thrown in D:\temp\php\datetime.php on line 7 ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=49188&edit=1