mic2100/fuzzy-time

模糊时间计算器

7.4.0 2022-04-01 19:16 UTC

This package is auto-updated.

Last update: 2024-08-29 05:22:42 UTC


README

这个项目受到了Ubuntu上存在的模糊时间时钟的启发。它可以在不知道确切分钟数的情况下,给你一个大致的时间概念。

例如,九点一刻或两点半

安装

composer require mic2100/fuzzy-time

使用方法

use Mic2100\FuzzyTime\GeneratorAwareTrait;
use Mic2100\FuzzyTime\GeneratorFactory;
use Mic2100\FuzzyTime\Language\Dictionaries\English;
use Mic2100\FuzzyTime\Language\Dictionaries\German;
use Mic2100\FuzzyTime\Language\LanguageFactory;

date_default_timezone_set('Europe/London');

$factory = new GeneratorFactory();
$english = $factory->get(); //or $factory->get(LanguageFactory::get(English::HANDLE);  
$german = $factory->get(LanguageFactory::get(German::HANDLE));

class SampleClass
{
    use GeneratorAwareTrait;
}

$traitClass = new SampleClass();

while (true) {
    echo $english->getFuzzyTime() . PHP_EOL;
    echo $german->getFuzzyTime() . PHP_EOL;
    echo $traitClass->getFuzzyTime((new DateTime('-25 MINS'))) . PHP_EOL;
    sleep(30);
}

/*----------------------------------------------
 * Example Output
 *
 * five to one //$english->getFuzzyTime()
 * fünf vor ein //$german->getFuzzyTime()
 * half to twelve //$traitClass->getFuzzyTime((new DateTime('-25 MINS')), LanguageFactory::get(English::HANDLE))
 *
 * or
 *
 * three o'clock //$english->getFuzzyTime()
 * drei uhr //$german->getFuzzyTime()
 * twenty five to three //$traitClass->getFuzzyTime((new DateTime('-25 MINS')), LanguageFactory::get(English::HANDLE))
 */

如果你只想使用英语,那么不需要使用LanguageFactory,因为这是默认语言。