Hi

On 7/16/26 16:25, Pierre Joye wrote:
I think we are in different realities ;-).

More seriously, and some random weekly internals on reddit made me realize
my point was not maybe not clear.
I had already replied on Reddit before I had seen your email here. Let me link the thread for further reference:

https://www.reddit.com/r/PHP/comments/1uxnmsp/comment/oy26ht9/

From what I understand there was a misunderstanding about the behavior of the `Duration::fromSeconds()` constructor in that it would also limit the `$seconds` value (to `59` I assume). This is false, all of the following would be perfectly legal:

    Duration::fromSeconds(120); // Two minutes
    Duration::fromSeconds(86_400); // One 24-hour-day
    Duration::fromSeconds(31_556_925,
                          43_200_000); // One solar year according
                                       // to WolframAlpha.

Only the (optional) `$nanoseconds` parameter is limited in that it must be smaller than “1 second” to achieve the “fixed point decimal” semantics. The `fromNanoseconds()` constructor that only takes nanoseconds will allow overflow into larger units as will all the other constructors. The injectivity is on a per-constructor basis.

You can also check the proof-of-concept implementation, while it is non-authoritative, it correctly implements the proposed overflow and range-checking semantics.

Best regards
Tim Düsterhus

Reply via email to