0%

Programmingプログラミングナレッジ

Posted:2019.06.25

PHPでタイムスタンプや現在時間を取得する

クライアントワークで時間を出力するような要件があったので、備忘録として残しておきたいと思います。ちなみに今回はPHPで実装する場合になります。本記事ではタイムスタンプという形式と現在日時をなじみの書式で出力するパターンについてまとめていきたいと思います。

 

タイムスタンプや現在日時・時間の取得

まずはタイムスタンプの値を取得し表示させる例になります。PHPではUNIX時間の値になります。このタイムスタンプの値はtime()関数で取得することができます。

【PHP】

<?php
 $timestamp = time();
 echo $timestamp
?>

// 出力
1561467188

 

このようにUNIX時間の値になります。ちなみにUNIX時間は協定世界時での1970年1月1日の午前0時0分0秒を起算とする秒数になります。

 

続いて現在日時を取得していろんなフォーマットに変換して表示する方法です。まずは先ほどと同じくtime()関数でタイムスタンプを取得します。そして、date()関数の第二引数に渡してあげます。第一引数にはフォーマットを指定することで、下記のように出力することができます。第二引数のタイムスタンプは省略することも可能です。

【PHP】

<?php
 $timestamp = time();
 echo date('Y年m月d日 H時i分s秒',$timestamp);
?>

// 出力
2019年06月25日 21時56分30秒

 

date()関数で使えるフォーマットにはいろんな種類がありますが、ここではよく目にする書式をピックアップしてまとめています。

 

Y年m月d日 4桁の西暦と2桁(1桁はゼロパディング)の月と日
例【2019年06月25日】
H時i分s秒 24時間表記の時間と分と秒(1桁はゼロパディング)
例【22時03分05秒】
M dS l 月名の英字略称と序数表記の日にち、英字の曜日
例【Jun 25th Tuesday】
n/d Ah:i スラッシュ区切りの月と日(ゼロパディングなし)とAM、PM表記の時間
例【6/25 PM10:03】
DATE_RFC3339 RFC 3339日付形式(定数として扱われる)
例【2019-06-25T22:16:16+09:00】

 

これ以外にもいろんな書式が用意されています。詳しくは公式のドキュメントを参考にどうぞ。
【PHP: date – Manual】
https://www.php.net/manual/ja/function.date.php

 

和暦の曜日を表示させる

先ほどの書式でも曜日を取得できますが、日本固有の和暦の曜日は用意されていないため、曜日を表す数値を取得できる書式を使って値に対応するように曜日を用意しなければいけません。ここでは配列に入れた曜日のデータを変数として用意し、配列のインデックスがdate()関数の曜日を取得できるフォーマットの「w」の返り値に対応させることで、曜日が表示されるようになっています。

【PHP】

<?php
 $week = array('日', '月', '火', '水', '木', '金', '土');
 echo $week[date('w')]. '曜日';
?>

// 出力
火曜日

 

 

過去、未来の指定した日時を取得する

また、何日前、何年後などといった指定した日時も取得・出力することも可能です。指定した日付のタイムスタンプを取得する、strtotime()関数を使います。引数には特定の日時や現在からの日時単位で指定することも可能です。ここでは過去や未来の日時単位を指定することで取得する方法になります。

【PHP】

<?php
 $term = 15;
 $past = strtotime('-'. $term. 'day');
 $future = strtotime('+'. $term. 'day');
 echo $number. '日前の日付は'. date('m月d日', $past). 'です';
 echo $number. '日後の日付は'. date('m月d日', $future). 'です';
?>

// 出力
15日前の日付は06月10日です
15日後の日付は07月10日です

 

strtotime()関数の引数には、過去や未来を正負の値で指定します。そして日時の単位も合わせて指定します。これで指定した日時のタイムスタンプの値を取得できるので、先ほどと同じようにdate()関数の引数に渡して、任意のフォーマットで出力する形になります。

 

また、strtotime()関数で使える日時単位の指定例を下記にまとめています。何日後、何年前などの決まった日時であれば覚えておくと便利ですね。

 

+X year / -X year X年後、X年前で指定する
+X month / -X month Xヶ月後、Xヶ月前で指定する
+X week / -X week X週間後、X週間前で指定する
+X day / -X day X日後、X日前で指定する
+X hour / -X hour X時間後、X時間前で指定する
+X minute / -X minute X分後、X分前で指定する
+X second / -X second X秒後、X秒前で指定する

 


 

いかがでしょうか、今回はPHPを使って日時を取得したり出力する例をまとめてみました。ウェブアプリケーションなどの機能実装では登場する場面もあるかと思いますので、ぜひご参考にどうぞ。

 

【参考にさせて頂いたサイト】
PHPで時間を取得、表示する方法まとめ

author
この記事を書いた人オガワ シンヤ
FacebookTwitter

DesignSupply.代表 / ディレクター・ウェブデザイナー・フロントエンドエンジニアをやっています。「ウェブとデザインでヒト・モノ・サービスを繋げ新しい価値を生み出す」をコンセプトに日々奮闘中!制作中はチョコレートが欠かせない三十路Webクリエイター。

制作のご依頼やお問い合わせ・パートナー業務提携のご相談はこちら

デザインやウェブ制作についてのご依頼やご相談、その他お問い合わせなどもお気軽にご連絡ください。フットワークの軽さやレスポンスの早さ、また豊富な経験や知識、技術を活かした対応力といったフリーランスクリエイターの強みでクライアント様、パートナー企業様のお力になります。デザインからコーディングやWordPress実装といったウェブサイト構築はもちろん、写真撮影や動画編集、コンテンツ制作からサイト運用サポートまで一括してお任せください。

ホームページ制作のご検討やウェブ運用でお悩みの経営者様や企業のウェブ担当者様をはじめ、個人で店舗を営んでいらっしゃるオーナー様、フリーで活動されているビジネスオーナー様はもちろんのこと、リソース不足でお困りの制作会社様、またクリエイターをお探しの代理店様も大歓迎です。

コンタクトをご希望の方はお手数ですが、下記よりお問い合わせフォームのページへアクセスしていただき、必要事項を入力の上メッセージを送信してください。確認でき次第すぐに折り返しご連絡致します。

こんな記事も読まれています

コメントもお気軽にどうぞ

記事に関するご質問やご意見などありましたら下記のコメントフォームよりお気軽に投稿ください。なおメールアドレスは公開されませんのでご安心ください。また、* が付いている欄は必須項目となります。

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。

CAPTCHA


ページトップへ
大阪市天王寺区のホームページ制作デザイン事務所(SOHO)DesignSupply.【デザインサプライ】