【PHP入門】strtotimeを使ったUNIXタイムスタンプの取得方法まとめ

こんにちは!エンジニアのノムラです。

PHPではUnixタイムスタンプを取得したり、指定した日時のUnixタイムスタンプを取得できる関数strtotime関数があります。

この記事では

  • Unixタイムスタンプとは?
  • strtotime関数でUnixタイムスタンプの取得
  • 日時を取得する方法

といった基本的な内容から、

  • 指定日時を取得する方法
  • 日付を指定してファイルを削除する方法
  • 指定日の曜日を取得する方法

などの応用的な内容に関しても解説していきます。

今回はそんなUnixタイムスタンプと日時の取得方法について詳しく解説します!

Unixタイムスタンプとは

Unixタイムスタンプとは、協定世界時(UTC)で1970年1月1日(午前0時0分0秒)の時刻からの経過秒数を表すものです。

多くのオペレーティングシステムでは、この表現方法が用いられてます。

また、規模の大きさにかかわらずシステムは時刻で管理しているものが多く、基本的にタイムスタンプについては理解しておく必要があると言えるでしょう。

strtotime関数でUnixタイムスタンプの取得

strtotime関数では、現在日時や指定した日時のUnixタイムスタンプを取得することができます。

書き方:

引数:
第一引数には日付や時刻を表す文字列を指定します。

有効な書式については 以下を参照してください。
http://php.net/manual/ja/datetime.formats.php

第二引数には基準となるUnixタイムスタンプを指定します。

返り値:
Unixタイムスタンプを返します。

現在の日時を取得するサンプルです。現在の日時を指定するには、引数に‘now’を指定します。

サンプルプログラム1:

実行結果1:

実行結果のように、現在の日時からUnixタイムスタンプが取得できることがわかりますね!

指定した日時のUnixタイムスタンプを取得するサンプルです。

サンプルプログラム2:

実行結果2:

このように指定した時刻のタイムスタンプを取得することもできますので、時刻同士を比較するときにも活用できます

たとえば、指定した日時より古いデータを削除するときや、タスクやTO-DOアプリなどの時刻指定などでタイムスタンプによる判定で処理を行うこともできます。

日時を取得する

取得したUnixタイムスタンプから、日時を取得してみましょう。
日時を取得するには、date関数を使用します。

date関数の使い方

date関数は以下のように記述します。

書き方:

引数:
第一引数には、第二引数のUnixタイムスタンプをフォーマットするフォーマット文字列を指定します。

第二引数にはフォーマットするUnixタイムスタンプを指定します。指定のない場合は、現在日時がフォーマットされます。

返り値:
フォーマットされた文字列を返します。

指定した日付フォーマットで取得する

Unixタイムスタンプを指定した日付フォーマットで取得するサンプルです。

サンプルプログラム:

実行結果:

date関数の第一引数にフォーマット文字列を指定し、第二引数にstrtotime関数で取得したUnixタイムスタンプを指定します。

このように指定した日付フォーマットに変換する方法や、date関数でフォーマットを指定する方法については、以下の記事で詳しく解説しています!

【PHP入門】日付のフォーマット(format) | date・DateTimeなど
更新日 : 2018年9月4日

strtotime関数での日時を指定した処理

strtotime関数は、「絶対日時」「相対日時」で日時を指定してUnixタイムスタンプを取得することができます。

指定日時を取得する

まず絶対日時を取得するサンプルをみていきましょう。
絶対日時とは、現在日時や指定した時刻など定まった絶対的な日時のことです。

サンプルプログラム1:

実行結果1:

次に、相対日時を取得するサンプルです。
相対日時は、現在日時から3時間後の日時や、現在日時から2日前の日時などの相対的な日時のことをいいます。

サンプルプログラム2:

実行結果2:

strtotime関数を使用して絶対日時や相対日時を取得する方法や、date関数の基本的な使い方については、以下の記事で詳しく解説しています!

【PHP入門】date関数の基本的な使い方
更新日 : 2018年9月4日

PHPの時間を扱う関数をまとめた記事もあるので、strtotime関数と比較してみてください!

【PHP入門】time関数でUNIXタイムスタンプの取得と日時の操作
更新日 : 2018年12月20日

日付を指定してファイルを削除する

strtotime関数を使用すれば、指定した日時のUnixタイムスタンプを取得することができます。

そのため、更新日時が一週間前のファイルを指定して削除することも可能です。

一週間のタイムスタンプを取得するには、strtotime関数で以下のように指定します。

日付を指定してファイルを削除する方法の詳細については、以下の記事で詳しく解説していますので、ぜひ参考にしてください!

【PHP入門】ファイルを削除する方法まとめ
更新日 : 2018年12月18日

指定日の曜日を取得する

strtotime関数を使用すれば、指定した日時から曜日を取得することができます。

曜日を取得するには、date関数の第一引数に曜日を取得する’w’を指定し、第二引数にstrtotime関数で日付を指定します。

サンプルプログラム:

実行結果:

以下の記事ではstrtotime関数の他にmktime関数で曜日を取得する方法や、date関数でさまざまな曜日を取得する方法について解説していますので、ぜひ参考にしてみてください!

【PHP入門】dateで曜日を取得する方法
更新日 : 2018年12月4日

strtotime関数はオススメできない!?

strtotime関数は現在や指定した日時のUnixタイムスタンプを取得するときに便利ですが、「2038年問題」があるため、オススメできない場合もあります。

2038年問題とは「2038年1月19日3時14分7秒」をすぎるとコンピュータが誤動作を起こすと言われている問題です。

そんな2038年問題の詳細や日付を比較する方法については、以下の記事で詳しく解説しています!

【PHP入門】日付を取得・比較する方法と注意点まとめ
更新日 : 2018年4月2日

まとめ

ここでは、Unixタイムスタンプと日時の取得方法について、

・strtotime関数でUnixタイムスタンプを取得する方法
・日時を取得する方法
・指定日時を取得する方法
・日付を指定してファイルを削除する方法
・指定日の曜日を取得する方法

など、strtotime関数の様々な使い方について解説しました。

実際のシステムでもUnixタイムスタンプはさまざまな処理でよく使われますので、ぜひ覚えておきましょう!

もし、Unixタイムスタンプと日時の取得方法を忘れてしまったら、この記事を思い出してくださいね!

未経験者でも安心の徹底サポート!まずは完全無料の体験レッスン!

「プログラミングに興味があるけど未経験だし、、、」とお悩みの方はご安心ください。

  • 24時間質問し放題
  • あなただけのオーダーメイドカリキュラムで学習の効率化
  • 仕事獲得方法からオリジナルアプリ開発方法

侍エンジニア塾では徹底したサポートによる「オーダーメイドカリキュラム」を作成しています。

まずは無料体験レッスンで、「挫折しない学習方法」や「あなただけの学習ロードマップ」を知り、学習の効率化をしましょう。独学の難点である「オリジナルアプリの作り方やエラーの対処法」についてもアドバイスさせていただきます。

詳しいサービス内容は、下記よりご参照ください。

cta_mtm1

LINEで送る
Pocket

書いた人

ノムラ

ノムラ

WEBエンジニアをやっています。
プログラミング初心者にもわかりやすく解説ができるよう頑張ります。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説