Edit report at https://bugs.php.net/bug.php?id=62911&edit=1

 ID:                 62911
 Comment by:         willfi...@php.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:

It's not a matter of whether PHP can or not; it's a matter of gathering a 
consensus among developers on what standard *should* be default.  I personally 
agree with adding __tostring, but this needs to be proposed in an RFC, which I 
will do tonight.


Previous Comments:
------------------------------------------------------------------------
[2012-08-27 17:27:15] bdurand-php at ssji dot net

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.

------------------------------------------------------------------------
[2012-08-27 15:24:45] willfi...@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] der...@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] willfi...@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

Reply via email to