ottosmops/antondate

用于 Anton 的日期

v0.0.4 2023-01-11 11:29 UTC

This package is auto-updated.

Last update: 2024-09-04 14:26:28 UTC


README

Latest Version on Packagist Total Downloads Tests

在 Anton 中使用日期 (anton.ch).

安装

通过 Composer

$ composer require ottosmops/antondate

date_startdate_start_cadate_enddate_end_ca 添加到数据库表中。

将类型转换添加到模型中

protected $casts = [
    'anton_date_interval' => AntonDateIntervalCast::class,
    'anton_date_start' => AntonDateStartCast::class,
    'anton_date_end' => AntonDateEndCast::class,
];

使用方法

该包涵盖两个 ValueObjects:AntonDate,AntonDateInterval(由两个 AntonDate 组成)。

创建一个 AntonDate

AntonDate::createFromString('1995-03-01', 1) : AntonDate
// ca. 1995-03-01

AntonDate::guessFromString('4. Mai 1905') : AntonDate
// 1905-05-04

AntonDate::compose(1973, 12, 3, 1) : AntonDate
// ca. 1973-12-03

AntonDate::today() : AntonDate

验证

AntonDate::isValidString('1997-13-01'); // false
AntonDate::isValidString('ca. 1997-11-01'); // true

获取

$antondate->toString();
$antondate->toArray();
$antondate->formatted();
$antondate->toMysqlDate();
$antondate->getCa();
$antondate->getYear();
$antondate->getMonth();
$antondate->getDay();

比较

$antondate->isEqualTo($antondate2, true); // compare with ca
$antondate->isEqualTo($antondate2); // compare without ca
$antondate->isGreaterThan($antondate2);
$antondate->isLessThan($antondate2);

规则

还有一个规则。您可以使用它进行验证:AntonDateRule::class

许可证

MIT。请参阅 许可证文件 了解更多信息。