icon
icon

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

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

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

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

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

 

そもそもPHPについてよく分からないという方は、PHPとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、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を学んで未経験からWebエンジニアを目指す方法とは

実際に書いてみよう

現在日時を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を使ってWebアプリケーション開発を習得できるオンラインブートキャンプPHP/Laravel講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。