Hi Hans,

On 16.02.24 13:05, Hans Henrik Bergan wrote:
My name is "Hans Henrik Bergan", usually go by the nickname
"divinity76", I've contributed to OSS (including PHP) for years, and
am currently involved in 3 things that might require an RFC, and
requesting RFC karma for wiki account "divinity76".

3/3: int|float for DateTime::setTimestamp, setTimestamp(0.123456) =>
1970-01-01 00:00:00.123456 : https://github.com/php/php-src/pull/13383

Actually I also want to work on this if I find time ... but as this is a BC break I think it makes sense to revisit DateTime (and friends) to bundle BC breaks to a single PHP version - probably PHP 9 and more sure there is a way for users to make it work in PHP (7+)8+9.

Personal and incomplete list I think needs improvements:

* allow float for `setTimestamp`
* option to return timestamp as float to simplify passing it to JS
* Missing getter/setter for most of the date/time parts like `get/setSecond`, `get/setHour` etc.   * For now I only added `get/setMicroseconds` together with `createFromTimestamp` because `DateTime::createFromTimestamp(123456789)->setMicroseconds(123987)`   * After thinking about naming - I think this should be renamed to singular 😬
* Add missing methods to DateTimeInterface
* Allow userland implements DateTimeInterface
  * Define how `createFromInterface` behaves on userland implementations
* fixing ISO 8601 format
* fixing some return type definitions from self to static
* strict mode
  * `DateTime::createFromFormat('Y-m-d', '2023-02-29')`
  * `DateTime::createFromFormat('Y-m-d H:i', '2024-03-31 02:30', new DateTimeZone('Europe/Berlin'))` * Missing current microseconds on `createFromFormat` but other non defined parts needs to be explicitly reset using `|!`
* leap seconds support on UTC TZ
  * As of leap seconds ... wouldn't it be better to default to +00:00 instead of UTC ?
* Support nanoseconds


I'm for sure not able to work on all these points and that's why I only started very small close to no BC improvements without RFC.


Marc

Attachment: OpenPGP_0x3936ABF753BC88CE.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to