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プログラミングで挫折しない学習方法を動画で公開中

実際に書いてみよう

現在日時を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講座を開催しています。

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

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する