php カウントダウンを作成する

  • 作成日 2021.12.22
  • php
php カウントダウンを作成する

phpで、DateTimeを使用して、カウントダウンを作成するサンプルコードを記述してます。phpのバージョンは8.0です。

環境

  • OS  CentOS Stream release 8
  • php 8.0.0
  • nginx 1.14.1

カウントダウン作成

DateTimeのdiffを使用して、現在日時と指定した日付の差分を取得することで、カウントダウンを実装することが可能です。

以下は、実際にカウントダウンを表示するサンプルコードとなります。

<?php

// デフォルトタイムゾーンを設定
date_default_timezone_set("Asia/Tokyo");

// カウントダウンする日付
$datetime = new DateTime('2022/01/01 00:00:00');
// 現在日時
$current  = new DateTime('now');
// 差分を取得する
$time = $current->diff($datetime);

// 表示
printf(
    'あと %d年%dヶ月%d日 %d時間%d分%d秒',
    $time->y,
    $time->m,
    $time->d,
    $time->h,
    $time->i,
    $time->s,
    $time->days
);

実行結果

あと 1年0ヶ月11日 12時間11分19秒

1秒ごとに表示される場合は、whileとsleepを使用します。

<?php

// デフォルトタイムゾーンを設定
date_default_timezone_set("Asia/Tokyo");

// カウントダウンする日付
$datetime = new DateTime('2022/01/01 00:00:00');

while (true) {
    // 現在日時
    $current  = new DateTime('now');
    // 差分を取得する
    $time = $current->diff($datetime);

    // 表示
    printf(
        'あと %d年%dヶ月%d日 %d時間%d分%d秒' . PHP_EOL,
        $time->y,
        $time->m,
        $time->d,
        $time->h,
        $time->i,
        $time->s,
        $time->days
    );
    sleep(1);
}

実行結果