PHP 日付・時間操作チートシート

PHP PHP
主にPHPに関する記事

はじめに

本記事では、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
i30
s45
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で使える日付・時間チートシートでした!

コメント

タイトルとURLをコピーしました