itvisionsy / php-time
dev-master
2016-10-04 19:58 UTC
Requires (Dev)
- phpunit/phpunit: ^5.5
This package is not auto-updated.
Last update: 2024-09-14 19:31:20 UTC
README
一个PHP类,用于轻松创建和维护时间值。您可以从字符串“1:22:13.212”或时间戳创建对象,并且它将自动解析和提取值。
然后您可以更新这些值,或者将其转换为字符串或时间戳。
创建对象
您可以从空值、字符串或时间戳创建对象。例如。
$time1 = new \ItvisionSy\Time\Time(); //Time is set to "0:0:0.000" $time2 = new \ItvisionSy\Time\Time("1:22:18.212"); $time3 = new \ItvisionSy\Time\Time(36232518212);
您还可以使用make($time)
工厂方法
$time1 = \ItvisionSy\Time\Time::make(); $time2 = \ItvisionSy\Time\Time::make("12:46:36.897"); $time3 = \ItvisionSy\Time\Time::make(3600000);
时间字符串
时间字符串是一个包含4个部分的字符串,如下所示:h[:i[:s[.m]]]
。例如
\ItvisionSy\Time\Time::make('3')->format(); //3:0:0.0 \ItvisionSy\Time\Time::make('3:30')->format(); //3:30:0.0 \ItvisionSy\Time\Time::make('3:30:22')->format(); //3:30:22.0 \ItvisionSy\Time\Time::make('3:30:22.123')->format(); //3:30:22.123
如果毫秒数字超过3位,则只使用前3位。您还可以使用不规则(溢出)值,并且它将自动转换为下一个单位。例如
\ItvisionSy\Time\Time::make('3:90')->format(); //4:30:0.0 \ItvisionSy\Time\Time::make('0:180')->format(); //3:0:0.0
设置值
您可以使用以下方法:`hours($value)`、`minutes($value)`、`seconds($value)`或`millis($value)`来更新值。`$value`参数可以是整数,将替换旧值,也可以是带有“+”或“-”前缀的字符串,以更改当前值。例如
$time = \ItvisionSy\Time\Time::make()->hours(4); //sets the hours to 4 $time->hourse("+3"); //sets the hours to 7 (4+3) $time->hours(0)->minutes(128)->seconds(61)->format(); //returns 2:9:1.000
您还可以使用直接赋值,这将调用前面的方法。例如
$time = \ItvisionSy\Time\Time::make("1:2:3.4"); $time->hours = 33; $time->seconds = "-22";
或者您可以使用解析方法
$time->parseString("22:11:12.123");
获取值
您可以使用方法或属性
$time->hours; // === $time->hours() $time->minutes; // === $time->minutes() $time->seconds; // === $time->seconds() $time->millis; // === $time->millis()
实用工具
格式化
format(boolean $leadingZeros = false)
$time = \ItvisionSy\Time\Time::make("6:3:7.23"); $time->minutes("+123"); $time->format(); //"8:6:7.23" $time->format(true); //"8:06:07.023"
表示
您可以将时间戳表示为小时或分钟等单位。
$time = \ItvisionSy\Time\Time::make("2:30:00.000");
比较
####Diff函数
use \ItvisionSy\Time\Time; Time::make('3')->diff(Time::make(2))->inHours; //3:0:0.0