Hi

On 2026-07-14 05:20, Pierre Joye wrote:
As for the specific case of “the constructors should be injective
functions”, you missed the second half of the quoted sentence: “and also based on our experience of working with dates and times both in PHP and
other programming languages”,

ok, let's agree to disagree here, it is hard to agree on "experiences". :)

That would've been my suggestion as well. I think it's only natural that 100% agreement on everything is impossible for a project as widely used as PHP.

 although native support for fixed-point
decimals would certainly made the API nicer.

What would be nicer is common practice and prior art(s). The setSecond
makes no sense as of now for two reaons:
- the limits because an instant is measured using 24 hours, 60 minutes
per hour, 60 seconds per minutes etc. does not mean a duration common
case do so. Common, and that's barely arguable, a duration is rarely
measured like an instant in time. If ever,

Sorry, I'm not sure I quite understand what you are trying to say here.

When discussing a Duration as in stop-watch time, I think it's natural to say “Usain Bolt broke the 100 m world record with 9 seconds 58 hundreths”, which is exactly the fixed-point decimal representation that the `fromSeconds()` constructor also uses. For longer races one might say “1 minute, 40 seconds and 91 hundreths” rather than “100 seconds 91 hundreths”, but none of the components overflow, and the “subseconds” are never further divided down into millis, micros, nanos, but just use the desired precision directly.

- it is awkward to have nanoseconds in setSeconds out of nowhere. I
understand some external factor (other entities) leading to that
decision but that creates illogical, inconsistent and confusing
semantic boundaries. A box can contain apples does not mean
setDimension should use apples with a limit on top. Or an apple can be
used with a box that does not make an apple's unit in square feet.

As outlined above, I believe this special casing of the “subsecond boundary” is common in the real world and human communication.

Best regards
Tim Düsterhus

Reply via email to