itvisionsy/php-time

时间管理类

dev-master 2016-10-04 19:58 UTC

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