Req #62911 [Wfx]: Add DateTime::__toString()
| From: | bdurand-php at ssji dot net | 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