stevegrunwell / time-constants
一系列用于在PHP应用程序中更方便地表示时间的常量
Requires
- php: ^7.0 | ^8.0
Requires (Dev)
README
时间常量包在您的应用程序中定义了多个有用的PHP常量,使表示时间更加容易。
例如,假设我们有一个接受三个参数的 cache()
函数
- 缓存键。
- 要缓存的值。
- 缓存值的时长(以秒为单位)。
目前,将值缓存24小时的代码可能看起来像这样
cache($cacheKey, $value, 24 * 60 * 60);
而不是花时间去想 24 * 60 * 60
的含义(或者 86400
表示一天),时间常量 允许您使用易于理解的PHP常量来表示时间
cache($cacheKey, $value, \TimeConstants\DAY_IN_SECONDS);
如果需求发生变化,我们需要将值缓存多天,我们可以将其重写为
cache($cacheKey, $value, 5 * \TimeConstants\DAY_IN_SECONDS);
这些常量可能对WordPress开发者很熟悉,因为它们完全受到WordPress对时间常量使用的启发。然而,这个包更进一步,添加了 *_IN_MINUTES
常量,以便更容易地与像 Laravel的 Cache
门面 这样的库一起使用。
安装
时间常量建议通过Composer安装
$ composer require stevegrunwell/time-constants
该包已配置为自动通过Composer生成的自动加载器公开 constants.php
文件,因此您将在包安装后立即准备好使用这些常量!
定义的常量
这是一个所有由本包定义的常量的列表,以及它们的值。每个常量都被一个 if (! defined(...))
条件语句所包裹,确保这些常量可以轻松地重新定义(如果需要)并且不会与现有的常量冲突。
截至本库的2.0.0版本,所有这些常量都在 TimeConstants
命名空间中定义。如果您是从1.x版本升级,请参阅 2.0.0版本发布说明中的迁移说明。
请注意,这些常量是为了方便而定义的,并不一定是为了准确性;所有月份都被视为30天,所有年份都被视为365天。如果您需要支持闰年或更高级的时间度量,您可能需要考虑使用 PHP的
DateTime
类 或 Nesbot的Carbon包。
基于秒的时间
ONE_SECOND
(1秒)MINUTE_IN_SECONDS
(60秒)HOUR_IN_SECONDS
(3600秒)DAY_IN_SECONDS
(86,400秒)WEEK_IN_SECONDS
(604,800秒)MONTH_IN_SECONDS
(2,592,000秒)YEAR_IN_SECONDS
(31,536,000秒)
基于分钟的时间
ONE_MINUTE
(1分钟)HOUR_IN_MINUTES
(60分钟)DAY_IN_MINUTES
(1,440分钟)WEEK_IN_MINUTES
(10,080分钟)MONTH_IN_MINUTES
(43,200分钟)YEAR_IN_MINUTES
(525,600分钟)
乘数
这些在处理秒的一部分时可能很有用。例如,以下所有都是等效的
6000 === (6 * ONE_SECOND) * 1000 === 6 * MILLISECONDS_PER_SECOND
MILLISECONDS_PER_SECOND
(1,000ms/s)MICROSECONDS_PER_SECOND
(1,000,000µs/s)NANOSECONDS_PER_SECOND
(1,000,000,000ns/s)PICOSECONDS_PER_SECOND
(1,000,000,000,000ps/s)