こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在5社経験している、12年目エンジニアです。
この記事では、 PHPで昨日のCarbonインスタンスを生成するCarbon::yesterdayメソッドについて
- Carbon::yesterdayメソッドとは
- Carbon::yesterdayメソッドを使ったサンプルプログラム
と、丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows11 |
---|---|
PHPのバージョン | 8.2.4 |
XAMPPのバージョン | 8.2.4 |
Carbonライブラリのバージョン | 2.71.0 |
PHPを動かすためにXAMPPを使っています。
XAMPPのインストールは、下の記事をご参考ください。
Carbon::yesterdayメソッドが属しているCarbonライブラリとは、年月日や時間を扱うライブラリです。
Carbonライブラリの基本的な使い方については、こちらの記事をご参考ください。
Carbon::yesterdayメソッドとは
Carbon::yesterdayメソッドとは、昨日のCarbonインスタンスを生成して返すメソッドです。
特徴的なのは
- 時間
- 分
- 秒
がすべて「0」である、という点です。
Carbon::yesterdayメソッドは使い方が
- パターン1:引数を指定しない場合
- パターン2:引数を指定する場合
の合計2パターンあります。
それぞれ解説します。
パターン1:引数を指定しない場合
引数を指定しない場合、環境で設定されているタイムゾーンを基にして昨日のCarbonインスタンスを生成して返します。
使い方サンプルは以下です。
1 |
$result = Carbon::yesterday(); |
変数resultには実行しているPHPのタイムゾーンを基にして
1 |
2023-10-06 00:00:00 |
というようなCarbonインスタンスが返されます。
タイムゾーンを確認するやり方はこちらの記事をご参考ください。
パターン2:引数を指定する場合
引数を指定する場合、引数で設定されているタイムゾーンを基にして昨日のCarbonインスタンスを生成して返します。
使い方サンプルは以下です。
1 |
$result = Carbon::yesterday('Europe/London'); |
変数resultには引数で指定されているタイムゾーンを基にして
1 |
2023-10-06 00:00:00 |
というようなCarbonインスタンスが返されます。
注意点として、引数に
1 |
$result = Carbon::yesterday('sample'); |
というような存在しないタイムゾーンを指定して実行した場合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Fatal error: Uncaught Carbon\Exceptions\InvalidTimeZoneException: Unknown or bad timezone (sample) in C:\xampp\vendor\nesbot\carbon\src\Carbon\CarbonTimeZone.php:109 Stack trace: #0 C:\xampp\vendor\nesbot\carbon\src\Carbon\Traits\Date.php(626): Carbon\CarbonTimeZone::instance('sample', NULL) #1 C:\xampp\vendor\nesbot\carbon\src\Carbon\Traits\Creator.php(89): Carbon\Carbon::safeCreateDateTimeZone('sample') #2 C:\xampp\vendor\nesbot\carbon\src\Carbon\Traits\Creator.php(260): Carbon\Carbon->__construct(NULL, 'sample') #3 C:\xampp\vendor\nesbot\carbon\src\Carbon\Traits\Creator.php(191): Carbon\Carbon::now('sample') #4 C:\xampp\vendor\nesbot\carbon\src\Carbon\Traits\Creator.php(296): Carbon\Carbon::rawParse('yesterday', 'sample') #5 C:\xampp\htdocs\sample.php(5): Carbon\Carbon::yesterday('sample') #6 {main} Next Carbon\Exceptions\InvalidFormatException: Unknown or bad timezone (sample) in C:\xampp\vendor\nesbot\carbon\src\Carbon\Traits\Creator.php:91 Stack trace: #0 C:\xampp\vendor\nesbot\carbon\src\Carbon\Traits\Creator.php(260): Carbon\Carbon->__construct(NULL, 'sample') #1 C:\xampp\vendor\nesbot\carbon\src\Carbon\Traits\Creator.php(191): Carbon\Carbon::now('sample') #2 C:\xampp\vendor\nesbot\carbon\src\Carbon\Traits\Creator.php(296): Carbon\Carbon::rawParse('yesterday', 'sample') #3 C:\xampp\htdocs\sample.php(5): Carbon\Carbon::yesterday('sample') #4 {main} thrown in C:\xampp\vendor\nesbot\carbon\src\Carbon\Traits\Creator.php on line 91 |
例外が発生するので、ご注意ください。
では、次の章で実際に使ってみます。
Carbon::yesterdayメソッドを解説するプログラムの概要
Carbon::yesterdayメソッドを解説するプログラムでは、引数に
- タイムゾーン指定なし
- タイムゾーン指定あり
の2種類のCarbonインスタンスを生成し、生成された日時を表示させて確認します。
phpプログラムは
C:\xampp\htdocs
配下に、【sample.php】というファイル名で格納しています。
PHPサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php require __DIR__ . "/../vendor/autoload.php"; use Carbon\Carbon; $result = Carbon::yesterday('sample'); print('■Carbon::yesterdayメソッドサンプル<br >'); $date1 = Carbon::yesterday(); print("タイムゾーン指定なし:". $date1); print("<br >"); $date2 = Carbon::yesterday('Pacific/Niue'); print("タイムゾーン指定あり:". $date2); ?> |
実行結果
XAMPPを起動して、【http://localhost/sample.php】のURLにアクセスします。
XAMPPでPHPの動かし方については、こちらの記事をご参考ください。
この処理を実行している時間は日本時間で2023年10月7日です。
タイムゾーンに沿った昨日のCarbonインスタンスを生成できていることが確認できました!
まとめ:Carbon::yesterdayメソッドを使ってみよう!
以上がCarbon::yesterdayメソッドについての解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント