grosv/sundial

PHP中自然语言日期/时间解析的尝试

0.3.1 2020-07-05 02:51 UTC

This package is auto-updated.

Last update: 2024-09-05 12:29:55 UTC


README

PHP 7.4+ 自然语言日期/时间字符串解析

GitHub Workflow Status (main) Total Downloads Latest Version License

安装

警告:此包尚未稳定。在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包模板以启动其项目的人推荐它。