grosv / sundial
PHP中自然语言日期/时间解析的尝试
0.3.1
2020-07-05 02:51 UTC
Requires
- php: ^7.4
Requires (Dev)
- ergebnis/phpstan-rules: ^0.15.0
- friendsofphp/php-cs-fixer: ^2.16.3
- pestphp/pest: ^0.2.2
- phpstan/phpstan: ^0.12.31
- phpstan/phpstan-strict-rules: ^0.12.2
- rector/rector: ^0.7.37
- symfony/var-dumper: ^5.1.2
- thecodingmachine/phpstan-strict-rules: ^0.12.0
README
PHP 7.4+ 自然语言日期/时间字符串解析
安装
警告:此包尚未稳定。在1.0版本发布之前可能会有破坏性更改。
composer require grosv/sundial
用法
$parser = new Grosv\Sundial\Parser(); $parser->parse('9th of August 2024 at 11:30 am')->toTimestamp(); // Get a unix timestamp $parser->parse('December the 25th of this year')->toFormat('m/d/Y'); // 12/25/2020 // You can set a valid date range with setBetween($start, $end) where start and end are UNIX timestamps. $parser->setBetween(time(), strtotime('+1 year'))->parse('tomorrow')->toFormat('m/d/Y'); // Works as expected $parser->setBetween(time(), strtotime('+1 year'))->parse('August 9, 1992')->toFormat('m/d/Y'); // Exception // By default we use English but this can be overridden using the ISO 639-2 Code of the language if we have it. $parser->setLanguage('esp')->parse('23 Mayo, 20204')->toFormat('m/d/Y'); // 05/23/2024
需要帮助
这是一个非常基础的可行包,需要大量的关注和照顾。欢迎任何愿意加入并工作于代码、添加更多测试、解决问题、翻译为新语言或仅构建文档的人的贡献。
剩余工作
日期和时间的解析相当不错,只要在框中输入的内容包含实际的日期和时间,通常都能正确解析。我相信我们会发现一些不能正确解析的情况,但这些问题可以轻松解决。
困难的部分现在才开始。比如“下个星期二下午4点”,甚至更好的是“下个星期二下午4点钟”,而金标准将是“圣诞前夕十点到午夜”。
致谢
这是我第一次使用Nuno Maduro的Skeleton PHP构建的包。这是一次极好的体验。我肯定还会再次使用它,并且毫不犹豫地向任何寻找真正坚实的PHP包模板以启动其项目的人推荐它。