dgame / php-time
PHP时间转换
v0.7.0
2021-07-18 18:36 UTC
Requires
- php: 8.0
- thecodingmachine/safe: ^1.3
Requires (Dev)
- ergebnis/composer-normalize: ^2.4
- ergebnis/phpstan-rules: ^0.15
- php-parallel-lint/php-parallel-lint: ^1.2
- phpstan/phpstan: ^0.12
- phpstan/phpstan-deprecation-rules: ^0.12
- phpstan/phpstan-strict-rules: ^0.12
- phpunit/phpunit: ^9.4
- roave/security-advisories: dev-latest
- slevomat/coding-standard: dev-master
- spaceemotion/php-coding-standard: dev-master
- spaze/phpstan-disallowed-calls: ^1.5
- symplify/easy-coding-standard: ^9.3
- thecodingmachine/phpstan-safe-rule: ^1.0
- thecodingmachine/phpstan-strict-rules: ^0.12
README
瞬间将时间单位转换为其他时间单位。
秒
seconds(300)->inMinutes()->equalsAmount(5);
分钟
minutes(60)->inSeconds()->equalsAmount(3600); minutes(60)->inHours()->equalsAmount(1);
小时
hours(24)->inMinutes()->equalsAmount(1440); hours(24)->inDays()->equalsAmount(1);
天
days(7)->inHours()->equalsAmount(168); days(7)->inWeeks()->equalsAmount(1);
周
weeks(12)->inDays()->equalsAmount(84);
月
months(12)->inYears()->equalsAmount(1);
年
years(1)->inWeeks()->equalsAmount(52); years(2)->inMonths()->equalsAmount(24);
比较时间单位
hours(24)->equals(days(1)); days(1)->equals(hours(24)); years(1)->equals(days(365)); weeks(1)->equals(days(7));
添加/减去时间单位
days(1)->add(hours(24))->equals(days(2)); hours(24)->subtract(days(0.5))->equals(hours(12)); hours(1)->equals(minutes(60));
获取特定月份/年份的详细信息
存在一个Month类和一个Year类(注意末尾缺少的s
),用于访问特定年份或特定月份的精确信息
月份
Month::Of('Feb', 2015)->inDays()->equalsAmount(28); Month::Of('Feb', 2015)->inWeeks()->equalsAmount(4); Month::Of('Feb', 2016)->inDays()->equalsAmount(29); Month::Of('Jun', 2016)->inDays()->equalsAmount(30); Month::Of('Jun', 2016)->inWeeks()->equalsAmount(4.28571);
年份
Year::Of(2016)->isLeapyear(); Year::Of(2015)->inDays()->equalsAmount(365); Year::Of(2016)->inDays()->equalsAmount(366); Year::Of(2015)->inWeeks()->equalsAmount(52.142857142857); Year::Of(2016)->inWeeks()->equalsAmount(52.285714285714);
以单独的单位表示时间单位
$unit = new TimeUnits(days(1000)); $this->assertTrue($unit->getYears()->equalsAmount(2)); $this->assertTrue($unit->getMonths()->equalsAmount(8)); $this->assertTrue($unit->getWeeks()->equalsAmount(3)); $this->assertTrue($unit->getDays()->equalsAmount(5)); $this->assertTrue($unit->getHours()->equalsAmount(11)); $this->assertTrue($unit->getMinutes()->equalsAmount(33)); $this->assertTrue($unit->getSeconds()->equalsAmount(20));
$unit = new TimeUnits(hours(4.5)); $this->assertTrue($unit->getYears()->equalsAmount(0)); $this->assertTrue($unit->getMonths()->equalsAmount(0)); $this->assertTrue($unit->getWeeks()->equalsAmount(0)); $this->assertTrue($unit->getDays()->equalsAmount(0)); $this->assertTrue($unit->getHours()->equalsAmount(4)); $this->assertTrue($unit->getMinutes()->equalsAmount(30)); $this->assertTrue($unit->getSeconds()->equalsAmount(0));
$unit = new TimeUnits(minutes(525)); $this->assertTrue($unit->getYears()->equalsAmount(0)); $this->assertTrue($unit->getMonths()->equalsAmount(0)); $this->assertTrue($unit->getWeeks()->equalsAmount(0)); $this->assertTrue($unit->getDays()->equalsAmount(0)); $this->assertTrue($unit->getHours()->equalsAmount(8)); $this->assertTrue($unit->getMinutes()->equalsAmount(45)); $this->assertTrue($unit->getSeconds()->equalsAmount(0));