こんにちは、JeffTechです。
説明
今回は業務の中で、時刻を15分ごとの切り上げで表示する処理を実装したので、備忘録程度にまとめておきます。
おまけに、30分ごとの切り下げもやっていきます。
この記事で実現できること
- 時刻を丸める
開発環境
- OS:MacOS
- PHP:7.3
- Laravel:6
実装
15分切り上げる処理
例:12:53:32 → 13:00:00
10:13:32 → 10:15:00
// 切り上げる分数
$roundUp = 15;
// Carbonインスタンス作成
$dateRoundUp = new Carbon('2021-06-04 11:48:25');
// 15分切り上げ→12:00:00になる
$dateRoundUp = $dateRoundUp->addMinutes($roundUp - $dateRoundUp->minute % $roundUp)->format('Y-m-d H:i:00');
30分切り下げる処理
例:12:53:32 → 12:30:00
10:13:32 → 10:00:00
// 切り下げる分数
$roundDown = 30;
// Carbonインスタンス作成
$dateRoundDown = new Carbon('2021-06-04 14:48:25');
// 30分切り上げ→14:30:00になる
$dateRoundDown = $dateRoundDown->subMinutes($dateRoundDown->minute % $roundDown)->format('Y-m-d H:i:00');
切り上げ、切り下げともにroundUpとroundDown変数を変えることで、10分の切り上げや切り下げなど臨機応変に対応できるようになります。
最後に
少しでも役に立った!という時は、いいねをポチッとして
フォローしてくださると嬉しいです、、、笑
役に立たなかった時は、怒らないでコメント頂けますと幸いです笑
Twitterもやってますので、よかったら見てみてくださいね!
https://twitter.com/jefftechsaku