Req #62911 [Wfx]: Add DateTime::__toString()

From: Date: Mon, 27 Aug 2012 17:27:15 +0000
Subject: Req #62911 [Wfx]: Add DateTime::__toString()
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-172958@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=62911&edit=1 ID: 62911 User updated by: bdurand-php at ssji dot net Reported by: bdurand-php at ssji dot net Summary: Add DateTime::__toString() Status: Wont fix Type: Feature/Change Request Package: Date/time related PHP Version: Irrelevant Assigned To: willfitch Block user comment: N Private report: N New Comment: The timezone can be defined in the constructor, with the directive tz php.ini, or with date_default_timezone_get() function. A DateTime is a string in fact, so it's logic to have a string cast available. Which format is more standard than ISO format? Another common format is the timestamp, but it can not represent all dates. Other languages did this behavior ​​like python. Why PHP can't? I know that I can subclass any (core) class... it's not the problem here. Previous Comments: ------------------------------------------------------------------------ [2012-08-27 15:24:45] willfitch@php.net Would it be worth investing time in adding a setter/constructor option for a default format type? Setting no default could fallback to one of the constants (which still doesn't resolve the non-consensus issue). ------------------------------------------------------------------------ [2012-08-27 15:17:38] derick@php.net We have had this a few times now, and we should not do this. The main reason is that we will never be able to come to a consensus on which format to show. It certainly shouldn't have anything that destroys the encoded timezone identifiers. It's perfectly possible to subclass DateTime yourself and add a __toString() that returns the datetime in your preferred format though. ------------------------------------------------------------------------ [2012-08-27 15:15:15] willfitch@php.net This is a good idea. I will add this, but will also add an RFC as I'd like the input of other internals on the output format. ------------------------------------------------------------------------ [2012-08-23 18:15:37] bdurand-php at ssji dot net Description: ------------ Hello, I want to have a default behavior to convert an instance of the class DateTime into a string. I mean implement the method __toString() in the DateTime class. The default format should be ISO8601 IMHO, but we can add an attribut to define the default format to use for __toString() and format() method. Greetings. Test script: --------------- <?php $datetime = new DateTime(); echo $datetime; Expected result: ---------------- 2012-08-23T20:11:21+0200 Actual result: -------------- PHP Catchable fatal error: Object of class DateTime could not be converted to string in php shell code on line 1 ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=62911&edit=1

« previous php.bugs (#172958) next »