khill/php-duration

将冒号格式的时间、可读时间与秒数之间进行转换

1.1.0 2021-03-17 11:34 UTC

This package is auto-updated.

Last update: 2024-09-18 19:00:33 UTC


README

在冒号格式的时间、可读时间与秒数之间进行持续时间转换

Total Downloads License Minimum PHP Version PayPal

Current Release Build Status Coverage Status

此包旨在实现一个具体的目标,即使用户能够轻松输入某件事花费的时间,作为一个时间持续段。

该库可以接受以冒号分隔的格式,例如2:43代表2分钟43秒,或者以可读或缩写形式,例如6m21s代表6分钟21秒。

两者都可以转换为秒和分钟,以精确地存储到数据库中。

秒数、冒号分隔、缩写,三者都可以解析和互换。

  • 支持小时、分钟和秒(包括微秒)
  • 可读输入支持“小时”、“分钟”、“秒”等单词的任何形式
    • 例如,您可以输入1h4m2s或4 Hr. 32 Min.

安装

composer require khill/php-duration:~1.0

用法

use Khill\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(null, 0); // 8
echo $duration->toMinutes(null, 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(null, 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(null, 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(null, 0); // 72

注意

您不需要为每次转换创建一个新对象,您还可以将三种形式中的任何一种传递给任何方法以获取即时输出。

$duration = new Duration;

echo $duration->humanize('1h 2m 5s');  // 1h 2m 5s
echo $duration->formatted('1h 2m 5s'); // 1:02:05
echo $duration->toSeconds('1h 2m 5s'); // 3725
echo $duration->toMinutes('1h 2m 5s'); // 62.0833
echo $duration->toMinutes('1h 2m 5s', true); // 62