org_heigl / daterange
提供显示日期范围的方法
1.2.0
2015-03-12 09:00 UTC
Requires
- php: >=5.5
Requires (Dev)
- codeclimate/php-test-reporter: dev-master
- mockery/mockery: ~0.9
- phpunit/phpunit: ~4.7@dev
- squizlabs/php_codesniffer: ~2.0@dev
- dev-master
- 1.2.0
- 1.1.0
- 1.0.0
- dev-dependabot/composer/squizlabs/php_codesniffer-approx-2.0devor-approx-3.0
- dev-dependabot/add-v2-config-file
- dev-dependabot/composer/mockery/mockery-approx-0.9or-approx-0.0
- dev-dependabot/composer/squizlabs/php_codesniffer-approx-2.0@devor-approx-3.0
- dev-dependabot/composer/phpunit/phpunit-approx-4.7@devor-approx-8.0
- dev-feature/addFilter
- dev-feature/removeSeparator
This package is auto-updated.
Last update: 2024-08-29 03:41:58 UTC
README
这个小型库试图简化日期范围的打印。
安装
通过composer轻松安装。只需在您的终端中输入以下命令,将DateRange库添加到您的composer.conf
文件中
composer require org_heigl/daterange
使用
然后,您可以通过创建DateRange实例、设置格式和分隔符,然后简单地调用getDateRange()
(将开始日期和结束日期作为参数)来使用DateRange库。
简单示例
<?php use Org_Heigl\DateRange\DateRangeFormatter $dateRange = new DateRangeFormatter(); $dateRange->setFormat('d.m.Y'); $dateRange->setSeparator(' - '); echo $dateRange->getDateRange(new \DateTime('12.3.2015'), new \DateTime('13.4.2015')); // Will print: 12.03. - 13.04.2014 echo $dateRange->getDateRange(new \DateTime('12.3.2015'), new \DateTime('13.3.2015')); // Will print: 12. - 13.03.2014
复杂示例
<?php use Org_Heigl\DateRange\DateRangeFormatter $dateRange = new DateRangeFormatter(); $dateRange->setFormat('m/d/Y'); $dateRange->setSeparator(' - '); echo $dateRange->getDateRange(new \DateTime('12.3.2015'), new \DateTime('13.3.2015')); // Will print: 3/12/ - 3/13/2014
您想更改日期格式化字符串的一部分?试试过滤器。
如果您想显示类似12 - 13.03.2013(注意12后面的点)的内容,您可以使用格式化字符串d.m.Y
并添加一个类似这样的RemoveEverythingAfterLastDateStringFilter
<?php use Org_Heigl\DateRange\DateRangeFormatter; use Org_Heigl\DateRange\Filter\RemoveEverythingAfterLastDateStringFilter; $dateRange = new DateRangeFormatter(); $dateRange->setFormat('d.m.Y'); $dateRange->setSeparator(' - '); $dateRange->addFilter(new RemoveEverythingAfterLastDateStringFilter(), DateRangeFormatter::FILTER_FIRST_DIFF); echo $dateRange->getDateRange(new \DateTime('12.3.2015'), new \DateTime('13.3.2015')); // Will print: 12 - 13.03.2014
目前有以下过滤器可用
- RemoveEverythingAfterLastDateStringFilter - 此过滤器将删除给定日期部分中最后的日期格式化字符之后的所有内容。因此,当日期格式化字符串为
d.m.
时,它将删除m
后面的所有内容,其中m
是最后的日期格式化字符。 - TrimFilter - 此过滤器将删除多余的空白。它只是通过`trim`函数传递日期格式化字符串。
您可以通过简单地实现Org_Heigl\DateRange\DateRangeFilterInterface
来实现自己的过滤器。这样,一切皆有可能!
您可以将过滤器添加到四个不同的过滤器链中,这些过滤器链用于过滤格式化字符串的不同部分。
- DateRangeFormatter::FILTER_COMPLETE将在第一天和第二天相同的情况下应用于格式化字符串。因此,输入将是您通过
DateRangeFormatter::setFormat()
提供的格式化字符串。 - DateRangeFormatter::FILTER_FIRST_DIFF将应用于用于开始日期的分割格式化字符串的第一部分。因此,当您的格式化字符串为
d.m.Y
且日期在月份上不同时,过滤器将应用于开始日期的d.m.
。 - DateRangeFormatter::FILTER_SECOND_DIFF将应用于用于结束日期的分割格式化字符串的第一部分。因此,当您的格式化字符串为
d.m.Y
且日期在月份上不同时,过滤器将应用于结束日期的d.m.
。 - DateRangeFormatter::FILTER_SAME将应用于用于在开始日期和结束日期上相同的部分的分割格式化字符串的第二部分。因此,当您的格式化字符串为
d.m.Y
且日期在日上不同时,过滤器将应用于m.Y
。