rm / dateinterval
DateInterval 扩展
v0.1.1
2017-10-14 11:12 UTC
Requires
- php: >=7.0
Requires (Dev)
- jakub-onderka/php-parallel-lint: ~0.9
- nette/tester: ~2.0
- phpstan/phpstan: ~0.8
This package is auto-updated.
Last update: 2024-09-05 20:30:54 UTC
README
PHP 中操作日期间隔的简单库。
需求
- PHP 7.0
安装
$ composer require rm/dateinterval
特性
扩展创建可能性
namespace RM\DateInterval; new DateInterval; // 0 seconds new DateInterval('PT0S'); // 0 seconds new DateInterval(new \DateInterval('PT0S')); // 0 seconds new DateInterval('-P1D'); // - 1 day new DateInterval('+2 minutes'); new DateInterval(10); // 10 seconds new DateInterval(-1000); // -1000 seconds new DateInterval(5.5); // 6 seconds
加/减
允许将多个间隔汇总成一个。
$interval = new \RM\DateInterval; foreach ([ 'PT10S', // 0:10 'PT13M14S', // 13:24 'PT3M3S', // 16:27 'PT4M58S', // 21:25 ] as $data) { $interval->add($data); } echo $interval->format('%i:%s'); // '21:25'
转换为秒
用于比较。
(new \RM\DateInterval('+1 day'))->toSeconds(); // int(86400)
生成字符串
生成标准化的 string
,用于将间隔存储到数据库中。
$now = new DateTime; $next = clone $now; $next->modify('+1 day') // 1 day ->modify('+14 hours') // 1 day 14 hours ->modify('-3 minutes') // 1 day 13 hours 57 mins ->modify('13 seconds'); // 1 day 13 hours 57 mins 13 seconds $interval = new \RM\DateInterval($now->diff($next)); echo (string) $interval; // P1DT13H57M13S $interval = new \RM\DateInterval($string); echo $interval->format('%dd %hh %im %ss'); // 1d 13h 57m 13s
或者也可以仅使用静态方法 RM\DateInterval::parse(DateInterval $interval)
。