Re: [RFC] Duration class
| From: | Tim Düsterhus | Date: | Mon, 22 Jun 2026 19:03:37 +0000 |
| Subject: | Re: [RFC] Duration class | ||
| References: | 1 2 3 4 5 6 7 8 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-131479@lists.php.net to get a copy of this message | ||
Hi Paul
I don't think I've seen your name on the list before. If this indeed your first email here: Welcome and thank you for contributing!
Am 2026-06-22 20:52, schrieb Paweł Kraśnicki:
For reference, brick/date-time's Duration class also allows seconds to be negative instead of storing a separate flag:Note that brick/date-time is as per the README (very) closely modeled after Java’s implementation, except for necessary differences to fit the API in PHP:
This component follows an important part of the JSR 310 (Date and Time API) specification from Java. Don't expect an exact match of class and method names though, as a number of differences exist for technical or practical reasons.So taking inspiration from that implementation is effectively taking inspiration from Java’s implementation.
The nanoseconds are always non-negative, so a duration of negative half a second would be stored as -1 seconds and 500,000,000 nanoseconds.Yes, this matches Java’s implementation. I've explained in https://news-web.php.net/php.internals/131466, why I don’t consider this representation to be intuitive or easy to use. Best regards Tim Düsterhus