pwa/time-elapsed

一个类,用于以美观(且高度可修改)的格式打印两个 DateTime 对象之间的经过时间

v1.0 2015-01-20 12:21 UTC

This package is not auto-updated.

Last update: 2024-09-14 15:21:55 UTC


README

Scrutinizer Code Quality Code Coverage Build Status

pwa/time-elapsed

一个 PHP 类,用于以美观(且高度可修改)的格式打印两个 DateTime 对象之间的经过时间。

安装

要将此包添加为项目本地依赖项,只需将 pwa/time-elapsed 依赖项添加到您的项目 composer.json 文件中。

{
    "require": {
        "pwa/time-elapsed": "dev-master"
    }
}

由于此类使用命名空间,在实例化对象时,您需要使用完全限定命名空间

$elapsed = new \Pwa\TimeElapsed($start);

用法

此类以格式化的方式打印两个 DateTime 对象之间的经过时间,格式由 src/localization.php 中找到的匿名函数确定。例如,如果经过时间是 >= 1 周 且 < 1 个月,则将调用此函数

'weeks_ago'	=> function ($weeks) {
	if (floor($weeks) == 1) {
		return 'a week ago';
	} else {
		return floor($weeks) . ' weeks ago';
	}
},

您可以将自己的本地化函数轻松传递给 TimeElapsed 类,以覆盖默认的本地化/格式化

$timezone = new \DateTimeZone("Europe/Stockholm");
$date = new \DateTime('2015-01-01 15:00:00', $timezone);

$elapsed = new TimeElapsed($date);
echo $elapsed->getElapsedTime(); // Between $date and $now = DateTime(null, $timezone);
// Output: a week ago

$localization = '/path/to/my_localization.php';
$elapsed->setLocalization($localization);

echo $elapsed->getElapsedTime();
// Output: one week ago

$localization = '/path/to/my_french_localization.php';
$elapsed->setLocalization($localization);

echo $elapsed->getElapsedTime();
// Output: Il ya 1 semaine

您还可以在实例化对象时传递一个结束日期

$start = new \DateTime('2015-01-01 15:00:00', $timezone);
$end = new \DateTime('2015-01-01 15:00:05', $timezone);

$elapsed = new TimeElapsed($start, end);
echo $elapsed->getElapsedTime();
// Output: a few seconds ago

许可证

此软件是免费软件,并带有 MIT 许可证。