activecollab / datevalue
Carbon的简单扩展,用于区分日期和日期时间对象
2.1.0
2022-08-10 07:26 UTC
Requires
- php: >=8.0
- ext-json: *
- nesbot/carbon: ~2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.0
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-09-10 11:50:08 UTC
README
Carbon的简单扩展,用于区分日期和日期时间对象。为了创建日期对象,请编写
<?php namespace MyApp; use ActiveCollab\DateValue\DateValue; $date = new DateValue('last day of April 2017'); print $date->format('Y-m-d') . "\n";
为了创建日期和时间对象,创建一个DateTimeValue
实例
<?php namespace MyApp; use ActiveCollab\DateValue\DateTimeValue; $date_time = new DateTimeValue('last day of April 2017'); print $date_time->format('Y-m-d H:i:s') . "\n";
由于DateValue和DateTimeValue类都扩展了Carbon,因此您也可以在代码中使用所有Carbon方法
<?php namespace MyApp; use ActiveCollab\DateValue\DateTimeValue; $date_time = (new DateTimeValue('last day of April 2017'))->endOfDay(); print $date_time->format('Y-m-d H:i:s') . "\n";
要指定日期范围,请使用DateRange类。范围可以轻松迭代
<?php namespace MyApp; use ActiveCollab\DateValue\DateRange; use ActiveCollab\DateValue\DateValue; use ActiveCollab\DateValue\DateValueInterface; $first_day = new DateValue('first day of April 2017'); $last_day = new DateValue('last day of April 2017'); $date_range = new DateRange($first_day, $last_day); /** @var DateValueInterface $day */ foreach ($date_range as $day) { $this->assertInstanceOf(DateValueInterface::class, $day); print $day->format('Y-m-d') . "\n"; // Prints all days from 2017-04-01 to 2017-04-30. }
有三个辅助日期范围类
<?php namespace MyApp; use ActiveCollab\DateValue\DateRange\MonthDateRange; use ActiveCollab\DateValue\DateRange\QuarterDateRange; use ActiveCollab\DateValue\DateRange\YearDateRange; new MonthDateRange(2017, 4); // April 2017. new QuarterDateRange(2017, 2); // Q2 2017. new YearDateRange(2017); // The whole 2017.
这些范围会自动计算起始和结束日期,并且可以像自定义日期范围一样迭代
版本 2
该包第二次迭代的目的是
- 使包要求PHP 7.1,并在所有文件中使用严格类型
- 使库的测试覆盖率达到100%
- 添加对自定义日期范围以及年、季度、月和日范围的支持
- 添加对日期范围内轻松循环的支持