chronos
3.1.0
Chronos 专注于提供不可变的日期/日期时间对象。不可变对象有助于确保日期时间对象不会被意外修改,从而使数据更具可预测性。
使用作曲家安装:
$ composer require cakephp/chronos
然后你可以使用 Chronos:
<?phprequire 'vendor/autoload.php';use CakeChronosChronos;printf("现在: %s", Chronos::now());
Chronos 最初与 Carbon 兼容,但已发生分歧,不再扩展 PHP DateTime 和 DateTimeImmutable 类。
不可变对象有很多优点:
使用不可变对象总是没有副作用。
日期和时间不会在代码的其他部分下意外更改。
考虑到这些好处,在修改不可变对象时需要记住以下几点:
// 这将丢失修改$date = new Chronos('2015-10-21 16:29:00');$date->modify('+2 hours');// 这将保留修改$date = new Chronos ('2015-10-21 16:29:00');$date = $date->modify('+2 小时');
PHP 仅提供日期时间对象作为本机扩展的一部分。 Chronos 为传统的 DateTime 对象添加了许多便利,并引入了ChronosDate
对象。 ChronosDate
实例的时间冻结为00:00:00
,时区设置为服务器默认时区。这使得它们在处理日历日期时非常理想,因为时间组件将始终匹配。
use CakeChronosChronosDate;$today = new ChronosDate();echo $today;// 输出 '2015-10-21' echo $today->modify('+3 小时');// 输出 '2015-10-21'
与Chronos
的实例一样, ChronosDate
对象也是不可变的。
可以在 book.cakephp.org/chronos/3/en/ 找到更具描述性的文档。
API 文档可以在 api.cakephp.org/chronos 上找到。