alecwcp/date-time-separation

一个用于处理日期和时间的独立、分离对象的库。

dev-master 2020-03-14 19:40 UTC

This package is auto-updated.

Last update: 2024-09-15 05:34:18 UTC


README

背景

在PHP中处理日期和时间可以通过使用内置的 datedate_* 函数、DateTimeDateTime 类,甚至是像 Carbon 这样的有用库来“相对轻松”地完成。

将日期和时间作为单独的实体处理仍然很困难。一个常见的解决方案是仍然使用日期时间对象,但忽略日期或时间部分——然而,这需要更好的变量命名、额外的注释,并不提供额外的类型安全性,并且使比较变得更加困难。

这个库旨在通过提供两个非常类似于核心 DateTimeInterface 的简洁接口和两个实现这些接口的简单类,并提供一些基于 DateTimeImmutable 的便利方法,使处理日期和时间作为单独的实体变得简单。

内部结构

库的内部结构在很大程度上依赖于 DateTimeImmutable 来处理格式化等。

扩展

扩展器可以实施此处提供的接口,或扩展此处提供的简单类(在类中所有引用都是对 static 而不是 self,以允许轻松覆盖其行为)。

贡献

此库遵循PSR12编码标准。运行样式检查,请运行

./vendor/bin/phpcs --standard="phpcs.xml" src

此库使用 Psalm 进行静态分析。运行分析器,请运行

./vendor/bin/psalm

此库使用 PHPUnit 进行测试。运行测试,请运行

./vendor/bin/phpunit tests