kcs / php-duration
在冒号格式的时间、可读时间与秒之间进行转换
v2.0.0
2024-09-09 10:16 UTC
Requires
- php: ^8.2
Requires (Dev)
- doctrine/dbal: ^2.5 || ^3.0 || ^4.0
- kcs/serializer: ^4.0 || ^5.0@dev
- phpunit/phpunit: ^10.0 || ^11.0
- roave/security-advisories: dev-latest
- solido/php-coding-standards: dev-master
README
在冒号格式的时间、可读时间与秒之间进行转换
该库可以接受以冒号分隔的格式,例如 2:43 代表 2 分钟 43 秒,或者以可读或缩写形式书写,例如 6m21s 代表 6 分钟 21 秒。
这两种格式都可以转换为秒和分钟,具有精确度,便于存储到数据库中。
秒、冒号分隔、缩写,三者都可以解析和互换。
- 支持小时、分钟和秒(包括微秒)
- 可人类化的输入支持“小时”、“分钟”、“秒”等单词的任何形式
- 例如,您可以输入 1h4m2s 或 4 Hr. 32 Min.
这个库是 khill/php-duration 库的改进/修订/更新版本。
安装
composer require kcs/php-duration
用法
use Kcs\Duration\Duration; $duration = new Duration('7:31'); echo $duration->humanize(); // 7m 31s echo $duration->formatted(); // 7:31 echo $duration->toSeconds(); // 451 echo $duration->toMinutes(); // 7.5166 echo $duration->toMinutes(0); // 8 echo $duration->toMinutes(2); // 7.52
$duration = new Duration('1h 2m 5s'); echo $duration->humanize(); // 1h 2m 5s echo $duration->formatted(); // 1:02:05 echo $duration->toSeconds(); // 3725 echo $duration->toMinutes(); // 62.0833 echo $duration->toMinutes(0); // 62
// Configured for 6 hours per day $duration = new Duration('1.5d 1.5h 2m 5s', 6); echo $duration->humanize(); // 1d 4h 32m 5s echo $duration->formatted(); // 10:32:05 echo $duration->toSeconds(); // 37925 echo $duration->toMinutes(); // 632.083333333 echo $duration->toMinutes(0); // 632
$duration = new Duration('4293'); echo $duration->humanize(); // 1h 11m 33s echo $duration->formatted(); // 1:11:33 echo $duration->toSeconds(); // 4293 echo $duration->toMinutes(); // 71.55 echo $duration->toMinutes(0); // 72
实用工具
此包包含一些实用类,以帮助与其他库集成
Kcs\Duration\Doctrine\DurationType
:用于与 doctrine ORM 和 DBAL 一起使用持续时间类的 doctrine 类型Kcs\Duration\Serializer\DurationHandler
:(反)序列化处理器,用于与kcs/serializer
库一起使用