読み込み中...

PHPで現在時刻を取得する!5つの手順と10の応用例

PHPで現在時刻を取得するコードのスクリーンショット PHP
この記事は約6分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を満たす現役のプログラマチームによって監修されています。

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

Webサイトやアプリケーション開発で必要不可欠なものの一つが、「現在の時刻」の取得です。

特にサーバー側のプログラミング言語であるPHPを利用したWeb開発では、現在の時刻を取得し利用するケースが数多くあります。

この記事を読むことで、PHPを用いて現在時刻を取得し、それをどのように利用するかを理解することができます。

●PHPとは

PHPは、「Hypertext Preprocessor」の略で、主にWebサーバーで動作するスクリプト言語です。

HTMLに直接埋め込むことができ、データベースとの連携も容易なため、動的なWebサイトやWebアプリケーションの開発に広く使用されています。

○PHPの基本

PHPでは、スクリプトは <?php?> で囲むことで実行されます。

また、PHPのコードは主にサーバー上で実行され、その結果がブラウザに送信されます。

つまり、PHPを用いることで、サーバー上のデータを処理し、それを元にHTMLを動的に生成することが可能になります。

●PHPで現在時刻を取得する手順

それでは、具体的にPHPを用いて現在時刻を取得する手順を見ていきましょう。

○サンプルコード1:現在時刻の取得

最もシンプルな現在時刻の取得方法は、PHPの date 関数を使用する方法です。

このコードは現在の時刻を “時:分:秒” のフォーマットで表示します。

<?php
echo date("H:i:s");
?>

○サンプルコード2:現在の日付の取得

現在の日付を取得する場合も、 date 関数を使用します。

ただし、フォーマットは “年-月-日” となります。

<?php
echo date("Y-m-d");
?>

○サンプルコード3:現在のタイムスタンプの取得

タイムスタンプは、1970年1月1日 00:00:00 UTCからの経過秒数を表します。

time 関数を使って現在のタイムスタンプを取得することができます。

<?php
echo time();
?>

○サンプルコード4:時間帯の設定

PHPでは、 date_default_timezone_set 関数を使用して、スクリプトのデフォルトの時間帯を設定できます。

ここでは、日本の時間帯(Asia/Tokyo)を設定しています。

<?php
date_default_timezone_set('Asia/Tokyo');
echo date("H:i:s");
?>

○サンプルコード5:現在時刻のフォーマット指定

date 関数の引数で、時刻の表示形式を指定することができます。

ここでは、年-月-日 時:分:秒を表示します。

<?php
echo date("Y-m-d H:i:s");
?>

これらの基本的な手法を理解した上で、現在時刻の取得を応用した具体的なプログラミングの例を次に見ていきましょう。

●PHPによる現在時刻の応用例

現在時刻の取得は、様々な場面で利用されます。

いくつか具体例を紹介します。

○サンプルコード6:特定の日時までの残り時間の算出

ある特定の日時までの残り時間を算出するためには、目標の日時のタイムスタンプと現在のタイムスタンプの差を計算します。

このコードでは、2023年6月1日までの残り時間を計算しています。

<?php
date_default_timezone_set('Asia/Tokyo');
$target = strtotime('2023-06-01 00:00:00');
$now = time();
$diff = $target - $now;

echo "2023年6月1日まであと " . floor($diff / (60 * 60 * 24)) . " 日です。";
?>

○サンプルコード7:日時の比較

PHPで日時を比較する際にも、タイムスタンプを利用します。

このコードでは、現在の日時が2023年6月1日より前であるかどうかを判定しています。

<?php
date_default_timezone_set('Asia/Tokyo');
$target = strtotime('2023-06-01 00:00:00');
$now = time();

if ($now < $target) {
    echo "まだ2023年6月1日より前です。";
} else {
    echo "もう2023年6月1日を過ぎています。";
}
?>

○サンプルコード8:日時の加算・減算

PHPの strtotime 関数は、日時の加算や減算を行う際にも利用できます。

このコードでは、現在の日時から一週間後の日時を取得しています。

<?php
date_default_timezone_set('Asia/Tokyo');
$one_week_later = strtotime('+1 week');
echo date("Y-m-d H:i:s", $one_week_later);
?>

このコードでは strtotime 関数に ‘+1 week’ を指定して一週間後のタイムスタンプを取得し、それを date 関数でフォーマットして表示しています。

○サンプルコード9:日付の曜日判定

特定の日付が何曜日であるかを知りたい場合も、 date 関数を利用できます。

このコードでは、2023年6月1日が何曜日であるかを判定しています。

<?php
date_default_timezone_set('Asia/Tokyo');
$day_of_the_week = date('w', strtotime('2023-06-01'));
$days = ['日', '月', '火', '水', '木', '金', '土'];
echo "2023年6月1日は " . $days[$day_of_the_week] . "曜日です。";
?>

このコードでは、 date 関数で指定した日付の曜日(0(日曜)から6(土曜))を取得し、その結果を配列 $days から参照して曜日を表示しています。

○サンプルコード10:特定のフォーマットでの出力

date 関数では、様々なフォーマットで日時を出力することが可能です。

このコードでは、現在の日時を ‘Y年m月d日 H時i分s秒’ の形式で出力しています。

<?php
date_default_timezone_set('Asia/Tokyo');
echo date("Y年m月d日 H時i分s秒");
?>

●注意点と対策

PHPによる日時の取得・操作にはいくつか注意点があります。

例えば、サーバーのデフォルトの時間帯がPHPスクリプトの期待する時間帯と異なる場合、 date_default_timezone_set 関数で適切な時間帯を設定する必要があります。

また、 date 関数で取得した日時はサーバー上の時刻であり、クライアント(ユーザーのブラウザ)の時刻とは必ずしも一致しないことにも注意が必要です。

クライアントの時刻を取得するにはJavaScriptなどのクライアントサイドのスクリプトを使用します。

まとめ

この記事では、PHPによる現在時刻の取得とその応用について、具体的なコードとその説明を交えて詳しく解説しました。

これらの手法を理解し活用することで、PHPを使った時間に関する処理を自由に行うことができるようになります。

PHPの学習をこれから始める方や、更にスキルアップを目指す方への参考になれば幸いです。