On Sat, 1 Sep 2012, Will Fitch wrote: > I would like to officially introduce an RFC with a patch to implement > __toString to DateTime. This is a commonly requested feature that goes > unanswered mostly because of the inability to agree on a default pattern. > > In short, the patch uses the ISO-8601 format as the default pattern. The > pattern may be changed via setDefaultPattern and date_default_pattern_set, > as explained in the RFC.
The default should most definitely not be ISO-8601 - as it's a lossy format. > The link to the RFC and patch are here: > https://wiki.php.net/rfc/datetime_tostring. > Methods Added > > void DateTime::setDefaultPattern(string $pattern) > string DateTime::getDefaultPattern(void) This should be descriptive. You are *only* dealing with __toString here. Hence the method names should reflect that: void DateTime::setToStringFormat(string $pattern) string DateTime::getToStringFormat(void) However, I still don't believe this belongs in the class at all. It is rather trivial to do this in userland: class MyDateTime extends DateTime { static $format = "... some format..."; function __toString() { return $this->format(DateTime::$format); } } There, 4 lines. And no quaralling about formats or naming. > <?php > $date = new DateTime('2012-09-01 02:43:00'); > print_r($date); Should not output just: > DateTime Object > ( > [date] => 2012-09-01 02:43:00 > [timezone_type] => 3 > [timezone] => America/Chicago > ) But instead should always have the tostring pattern in there. Also, have you checked whether it shows up when you run serialize on it? cheers, Derick -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php