ryanwinchester/carbonize

用于克隆和创建新的Carbon实例的Carbon助手。

v0.2.0 2017-10-15 05:45 UTC

This package is auto-updated.

Last update: 2024-08-28 22:51:03 UTC


README

Packagist Build Status Codecov Maintainability

Carbon 助手,用于从其他Carbon对象、DateTime|Immutable对象、日期字符串、时间戳或null(对于 now)创建新的Carbon实例。

有时候,我们需要处理已经存在或正在进行的工程项目,这些项目充满了魔法和不一致的日期格式。这将是时间戳吗?日期字符串?Carbon实例?只要它是某种形式的日期和时间,这重要吗? ¯\_(ツ)_/¯

    public function doMyThing($datetime)
    {
        // Whatever it was, it is _now_ a NEW carbon instance
        $datetime = carbonize($datetime);

        // do stuff with your carbon instance
    }

您可以使用它作为 carbonize()carbon()Carbonize\Carbonize::toCarbon()

安装

composer require ryanwinchester/carbonize

这不会将carbon作为依赖项安装,因此请自行添加。

重要提示:请使用Carbon 1.21(不是1.22)直到时区问题得到解决。(briannesbitt/Carbon#863

功能

carbonize() == Carbon::now("UTC");

$carbon = new Carbon();
carbonize($carbon) == $carbon->copy();

$dt = new DateTime();
carbonize($dt) == Carbon::instance($dt);

$dtImmutable = new DateTimeImmutable();
carbonize($dtImmutable) == Carbon::instance(new DateTime($dtImmutable->format(DateTime::ATOM)));

carbonize(1507957785) == Carbon::createFromTimestamp(1507957785, "UTC");

carbonize("1507957785") == Carbon::createFromTimestamp(1507957785, "UTC");

carbonize("2017-01-01 12:04:01") == Carbon::parse("2017-01-01 12:04:01", "UTC");

carbonize("3 months ago") == Carbon::parse("3 months ago", "UTC");

许可证

MIT

鸣谢

备注

尽管Carbon相当不错,但如果可能的话,请使用 Chronos。(https://github.com/cakephp/chronos

<3 Chronos,不可变性永远是最棒的 ᕙ(⇀‸↼‶)ᕗ