cakephp / chronos
DateTime的简单API扩展。
3.1.0
2024-07-18 03:18 UTC
Requires
- php: >=8.1
- psr/clock: ^1.0
Requires (Dev)
- cakephp/cakephp-codesniffer: ^5.0
- phpunit/phpunit: ^10.1.0 || ^11.1.3
Provides
- 3.x-dev
- 3.1.0
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 3.0.0-beta3
- 3.0.0-beta2
- 3.0.0-beta1
- 2.x-dev
- 2.4.5
- 2.4.4
- 2.4.3
- 2.4.2
- 2.4.1
- 2.4.0
- 2.4.0-RC2
- 2.4.0-RC1
- 2.3.3
- 2.3.2
- 2.3.1
- 2.3.0
- 2.2.0
- 2.1.2
- 2.1.1
- 2.1.0
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.x-dev
- 1.3.0
- 1.2.8
- 1.2.7
- 1.2.6
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 0.4.11
- 0.4.10
- 0.4.9
- 0.4.8
- 0.4.7
- 0.4.6
- 0.4.5
- 0.4.4
- 0.4.3
- 0.4.2
- 0.4.1
- 0.4.0
- 0.3.0
- 0.2.0
- 0.1.0
- dev-3.next
- dev-dependabot/github_actions/codecov/codecov-action-4
- dev-2.x-interval
This package is auto-updated.
Last update: 2024-09-20 02:49:06 UTC
README
Chronos专注于提供不可变日期/日期时间对象。不可变对象有助于确保日期时间对象不会意外修改,从而保持数据更加可预测。
安装
使用composer安装
$ composer require cakephp/chronos
然后你可以使用Chronos
<?php require 'vendor/autoload.php'; use Cake\Chronos\Chronos; printf("Now: %s", Chronos::now());
与nesbot/carbon的区别
Chronos最初与Carbon兼容,但已分叉,不再扩展PHP的DateTime和DateTimeImmutable类。
不可变对象变更
不可变对象有许多优点
- 使用不可变对象始终是无副作用的。
- 日期和时间不会在代码的其他部分下意外改变。
考虑到这些优点,当修改不可变对象时,你需要注意以下几点
// This will lose modifications $date = new Chronos('2015-10-21 16:29:00'); $date->modify('+2 hours'); // This will keep modifications $date = new Chronos('2015-10-21 16:29:00'); $date = $date->modify('+2 hours');
日历日期
PHP只提供datetime对象作为本地扩展的一部分。Chronos为传统的DateTime对象添加了多个便利性,并引入了ChronosDate
对象。ChronosDate
实例的时间被冻结到00:00:00
,时区设置为服务器默认时区。这使得它们在处理日历日期时非常理想,因为时间组件将始终匹配。
use Cake\Chronos\ChronosDate; $today = new ChronosDate(); echo $today; // Outputs '2015-10-21' echo $today->modify('+3 hours'); // Outputs '2015-10-21'
与Chronos
实例一样,ChronosDate
对象也是不可变的。
文档
更详细的文档可以在book.cakephp.org/chronos/3/en/找到。
API文档
API文档可以在api.cakephp.org/chronos找到。