activecollab/datevalue

Carbon的简单扩展,用于区分日期和日期时间对象

2.1.0 2022-08-10 07:26 UTC

This package is auto-updated.

Last update: 2024-09-10 11:50:08 UTC


README

Build Status

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%
  • 添加对自定义日期范围以及年、季度、月和日范围的支持
  • 添加对日期范围内轻松循环的支持