環境
初書:2020/09/04
PC:macOS 10.15.6
php 7.4.9
Composer: v1.10.10
carbon: v2.39
Carbonとは
時間関係の処理をまとめてくれるライブラリ
インストール
※composerは設定済みとして話を進めていく
ターミナルで以下を実行する
% composer require nesbot/carbon
使い方
newするだけ。
index.php
use Carbon\Carbon;
$time = new Carbon();
echo $time; //2020-09-04 16:00:21
echo Carbon::now(); // 2020-09-04 16:00:21。この場合はnewすらする必要はない
なお、タイムゾーンはdate_default_timezone_set('Asia/Tokyo');
で設定できる。
(…が、これで設定してもいいのだろうか?)
主な使い方については下記ページの方がまとめてくれているので、こちらを参考に。。。
追記:ミリ秒の取得方法だけ見当たらなかったので記述
$time = new Carbon();
echo $time . "." . substr("00000".$time->micro, -6 , 3); // 2020-09-04 21:44:19.592
テストする場合
開発環境で、一時間ずらしたり、一日ずらしたりする必要がある時
$knownDate = Carbon::create(2020, 9, 1, 11, 26, 13);
Carbon::setTestNow($knownDate);
echo Carbon::now(); //2020-09-01 11:26:13
こんな感じで、Carbon::setTestNow
に指定したい日時を入れるとその時間帯に変更してくれる。
ただし、時間が完全に固定されるため、時間がかかることを想定している場合での使用には使えない。
echo Carbon::now(); // 2020-09-04 16:30:49
sleep(10);
echo Carbon::now(); // 2020-09-04 16:30:59
$knownDate = Carbon::create(2020, 9, 1, 11, 26, 13);
Carbon::setTestNow($knownDate);
echo Carbon::now(); // 2020-09-01 11:26:13
sleep(10);
echo Carbon::now(); // 2020-09-01 11:26:13
終わりに
公式サイトをみると、かなり色んな日付計算ができるみたいなので、一度見てみてもいいかもしれない(全部英語だけど)
https://carbon.nesbot.com/docs/#api-week