alecwcp / date-time-separation
一个用于处理日期和时间的独立、分离对象的库。
dev-master
2020-03-14 19:40 UTC
Requires
- php: >=7.2.0
Requires (Dev)
- phpunit/phpunit: ^8
- squizlabs/php_codesniffer: ^3.5.4
- vimeo/psalm: ^3.9.5
This package is auto-updated.
Last update: 2024-09-15 05:34:18 UTC
README
背景
在PHP中处理日期和时间可以通过使用内置的 date
和 date_*
函数、DateTime
和 DateTime
类,甚至是像 Carbon 这样的有用库来“相对轻松”地完成。
将日期和时间作为单独的实体处理仍然很困难。一个常见的解决方案是仍然使用日期时间对象,但忽略日期或时间部分——然而,这需要更好的变量命名、额外的注释,并不提供额外的类型安全性,并且使比较变得更加困难。
这个库旨在通过提供两个非常类似于核心 DateTimeInterface
的简洁接口和两个实现这些接口的简单类,并提供一些基于 DateTimeImmutable
的便利方法,使处理日期和时间作为单独的实体变得简单。
内部结构
库的内部结构在很大程度上依赖于 DateTimeImmutable
来处理格式化等。
扩展
扩展器可以实施此处提供的接口,或扩展此处提供的简单类(在类中所有引用都是对 static
而不是 self
,以允许轻松覆盖其行为)。
贡献
此库遵循PSR12编码标准。运行样式检查,请运行
./vendor/bin/phpcs --standard="phpcs.xml" src
此库使用 Psalm 进行静态分析。运行分析器,请运行
./vendor/bin/psalm
此库使用 PHPUnit 进行测试。运行测试,请运行
./vendor/bin/phpunit tests