Re: Add __toString() to DateInterval
On Wed, 3 Mar 2021, Moritz Friedrich wrote:
> I would like to propose adding a __toString() method to the
> DateInterval class that should return a valid ISO8601 interval
> (https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). As it stands,
> the class supports creating instances from such interval strings
> passed to its constructor, but the reverse isn’t true: The only way to
> build a string representation of the interval is by querying the
> DateInterval::format method for the individual durations multiple
> times (see
> https://stackoverflow.com/questions/33787039/format-dateinterval-as-iso8601#answers
>
> for examples).
The DateInterval class can also contain intervals that can't be
represented with such an ISO string. For example, how are you going to
do:
$dt = DateInterval::createFromDateString( "next weekday" );
or
$dt = DateInterval::createFromDateString( 'next Monday 02:00' );
__toString needs to work in every case, and I don't think you can do
that with ISO 8601 interval strings.
cheers,
Derick
--
PHP 7.4 Release Manager
Host of PHP Internals News: https://phpinternals.news
Like Xdebug? Consider supporting me: https://xdebug.org/support
https://derickrethans.nl | https://xdebug.org | https://dram.io
twitter: @derickr and @xdebug
Thread (19 messages)