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 上找到。