PHPで日付をunixtimeに変換する方法【初心者向け】

初心者向けにPHPで日付をunixtimeに変換する方法について解説しています。unixtimeを理解して日付を比較したり変換したり出来るようになりましょう。実際にいろんなシーンに応じて書き方を紹介しています。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

PHPで日付をunixtimeに変換する方法について解説します。

日時の表示を行う上で必要な知識なので、書き方を理解しておきましょう。

 

なお本記事は、TechAcademyのPHP/Laravel講座の内容をもとに紹介しています。

 

田島悠介

今回は、PHPに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

PHPで日付をunixtimeに変換する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

unixtimeとは

簡単に言えば、プログラム上でよく利用する時刻の表現方法の1つです。

UTC(協定世界時)とよばれる世界共通の標準時で、1970年1月1日0時0分0秒からの経過秒数をunixtimeとします。

例えば、

2018時01時00分0秒を表すunixtimeは1514764800になり、
1970時01時10分0秒を表すunixtimeは600になります。

またGMT(グリニッジ標準時)とよばれる有名なUTCとほぼ同じ時刻表現がありますが、こちらはUTCより前にある世界標準時で昔は利用されていたが、現在はUTCが利用されています。

基本的にはUTCと同じ値を算出しますので、UTC=GMTの認識で良いかも知れません。

ポイントとしては、日本時間でunixtimeを扱う際は時差を考慮した計算結果になります。

日本標準時はUTCと時差が+9時間あるのため、1970年1月1日9時0分0秒からの経過秒数になります。

 

日付をunixtimeに変換する書き方

例1

$date = new DateTime('2018-01-01 00:00:00');
echo $date->format('U');
// 1514764800と出力されます

例2

//日本時間をタイムゾーンに設定
$date = new DateTime('2018-01-01 00:00:00', new DateTimeZone('Asia/Tokyo'));
echo $date->format('U');
// 1514732400と出力されます
// 例①と比べて+09時間分の時差である 60 × 60 × 9 = 32400秒の差分が出ている

 

[PR] PHPのプログラミングで挫折しない学習方法を動画で公開中

実際に書いてみよう

現在日時をunixtimeとして取得して表示する方法

// 3つ方法それぞれで取得できます
// 出力結果もすべて同じになるはずです
echo time().PHP_EOL;
echo strtotime('now').PHP_EOL;
$date = new DateTime();
echo $date->format('U').PHP_EOL;

 

指定した日時をunixtimeとして取得して表示する方法

// タイムゾーンを協定世界時に設定
// 1514764800と出力されます
echo strtotime('2018-01-01 00:00:00').PHP_EOL;
$date = new DateTime('2018-01-01 00:00:00', new DateTimeZone('UTC'));
echo $date->format('U').PHP_EOL;

// タイムゾーンを日本標準時に設定
// 1514732400と出力されます
$date = new DateTime('2018-01-01 00:00:00', new DateTimeZone('Asia/Tokyo'));
echo $date->format('U').PHP_EOL;

 

unixtimeから日付フォーマットに変換する方法

// 2018年01月01日と出力されます
$unixtime = strtotime('2018-01-01 00:00:00');
echo date('Y年m月d日', $unixtime);
この記事を監修してくれた方

青木 敦史(あおきあつし)
昼間は自社のWebサービスを運営している会社でフロントエンド/バックエンドを担当しているエンジニア。

Webエンジニアの経験は5年ほどです。TechAcademyではPHP/Laravelコースを担当しています。
開発実績: メイクレッスン支援アプリ / 電力自由化パッケージ / 携帯電話料金計算 / ライブチャットサービス

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

オンラインのプログラミングスクールTechAcademyではオンラインブートキャンプPHP/Laravelコースを提供しています。

PHPやフレームワークのLaravelを使ってWebアプリケーションの開発を学ぶことができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。