はじめに
本記事では、PHPにおける日付・時間の基本操作を、チートシート形式でまとめました。Laravelユーザー向けに、Carbonを使った便利な操作方法も後半で紹介します。
日付・時間操作は、バグが発生しやすいポイントの一つです。正確な処理を行うため、この記事を参考にしてください!
基本的なPHP組み込み関数
現在の日付・時間を取得する
// 現在のUNIXタイムスタンプ
$timestamp = time();
// 現在の日付・時間(フォーマット指定)
echo date('Y-m-d H:i:s');
任意の日付を作成する
// 文字列から日時を生成
$date = strtotime('2025-05-01');
echo date('Y-m-d', $date);
// 個別に指定して生成
$date = mktime(12, 0, 0, 5, 1, 2025);
echo date('Y-m-d H:i:s', $date);
日付の加算・減算
// 1日後
echo date('Y-m-d', strtotime('+1 day'));
// 1週間前
echo date('Y-m-d', strtotime('-1 week'));
フォーマット一覧(例)
フォーマット | 意味 | 出力例 |
---|---|---|
Y | 西暦(4桁) | 2025 |
m | 月(ゼロ埋め) | 04 |
d | 日(ゼロ埋め) | 28 |
H | 時(24時間表記) | 14 |
i | 分 | 30 |
s | 秒 | 45 |
l (エル小文字) | 曜日 | Monday |
N | 曜日番号(月曜=1) | 1 |
Laravel(Carbon)を使った日付・時間操作
Laravelでは、Carbonライブラリが標準で使えます。より直感的に日付・時間を操作できます。
Carbonの基本
use Carbon\Carbon;
// 現在の日付・時間
$now = Carbon::now();
echo $now; // 例: 2025-04-28 14:30:45
// 今日の日付だけ(時間は00:00:00)
$today = Carbon::today();
// 明日・昨日
$tomorrow = Carbon::tomorrow();
$yesterday = Carbon::yesterday();
日付の加算・減算
$now = Carbon::now();
// 1日加算
$nextDay = $now->addDay();
// 2週間減算
$twoWeeksAgo = $now->subWeeks(2);
// 特定の日時を加算
$future = $now->addHours(5)->addMinutes(30);
日付比較
$date1 = Carbon::parse('2025-04-01');
$date2 = Carbon::parse('2025-04-15');
if ($date1->lt($date2)) {
echo 'date1はdate2より前です';
}
if ($date2->gt($date1)) {
echo 'date2はdate1より後です';
}
曜日や月末・月初の取得
$now = Carbon::now();
// 曜日
echo $now->dayOfWeek; // 0 (日曜) ~ 6 (土曜)
echo $now->englishDayOfWeek; // Mondayなど
// 月末
$endOfMonth = $now->endOfMonth();
// 月初
$startOfMonth = $now->startOfMonth();
特定条件で加算(例: 平日のみ加算)
$date = Carbon::now();
// 営業日ベースで5日後(週末を飛ばす例)
for ($i = 0; $i < 5; ) {
$date->addDay();
if (!$date->isWeekend()) {
$i++;
}
}
echo $date->toDateString();
よくある注意点とベストプラクティス
- タイムゾーン設定を忘れずに(特にサーバーとアプリケーションでずれる場合)
- strtotime()は曖昧な文字列に弱いので注意(”next Thursday”など)
- Carbonを使うとコードが可読性・メンテナンス性ともに向上する
タイムゾーン設定例
// PHP
date_default_timezone_set('Asia/Tokyo');
// Laravel (config/app.php)
'timezone' => 'Asia/Tokyo',
まとめ
- PHP標準関数だけでも日付・時間操作は可能
- LaravelならCarbonを積極的に使うとコードがスッキリする
- タイムゾーン・加算減算のミスに特に注意!
📚 参考リンク:
以上、PHPとLaravelで使える日付・時間チートシートでした!
コメント