【初学者向け】phpのdate関数で年月日を出力する

date関数とは、日付けを取得する関数です。

プログラムを書くなら絶対に欠かせない要素が日付です。

アプリケーションを使用する時、僕たちは無意識に日付を確認しています。

例えば、

  • 検索した内容は新しいか
  • 出品された商品はいつなのか
  • いつ発売されたものなのか

日付は僕たちにとって、何かを判断する重要な指標になっています。

しっかり学習して、自分のアプリケーションで問題なく使用できるようになりましょう。

今日の記事は、

  • date関数ってどうやって使うの?
  • date関数で年月日をどうやって取得するの?
  • date関数を日本時刻にするにはどうしたらいいの?

このような悩みを抱えた方にはぴったりの記事です。

date関数を使ってみる

まずは一緒に手を動かしていきましょう。

date関数はパラメータ(引数)に所定のフォーマットを渡すことで、日付を出力します。

print関数の使用方法がわからない方は【print関数を学ぶ】PHPのprint関数で文字を出力するをご参考ください。

年月日を出力する

<?php
print(date("Y/m/d"));
?>

月日を出力

<?php
print(date("m/d"));
?>

日を出力

<?php
print(date("d"));
?>

僕たちが何気なくみている日付ですが、プログラムで書くとよくわからないアルファベットを使用しているんですね。

ただし、よくみると一定の規則性はあるようです。

年月日をそれぞれ英語に直してみましょう。

すると、

  • year → y
  • month → m
  • date → d

プログラミングは英語で書かれていることが多いので、英語を意識しながら読むと訳のわからない記号が急に読めるようになる、なんてこともあります。

その他の日付を表示してみよう

今度は翌日、前日など今日の日付以外の表示の仕方を見ていきましょう!

すこーし複雑になりますが、書いてみると面白いのでぜひ書いてみてくださいね。

使う関数は、

strtotime()

になります。

この関数はtimestampと呼ばれる日付データを作成してくれます。

実装手順は以下2ステップになります。

  1. strtotime関数のパラメータ(引数)に指定のフォーマットを渡す
  2. date関数の第2引数に上記のstrtotime関数の返り値を渡す

なんだか言葉で言うと難しいので、早速書いていきましょう!

翌日

<?php
print(date("Y/m/d" ,strtotime('1day')));
?>

前日

<?php
print(date("Y/m/d" ,strtotime('-1day')));
?>

翌月

<?php
print(date("Y/m/d" ,strtotime('1month')));
?>

前月

<?php
print(date("Y/m/d" ,strtotime('-1month')));
?>

翌年

<?php
print(date("Y/m/d" ,strtotime('1year')));
?>

前年

<?php
print(date("Y/m/d" ,strtotime('-1year')));
?>

基本的には、strtotime関数の引数に、年月日を足し引きすると出力されます。

ここまでできると自作のカレンダーが作れたりもします。

余裕のある人は、カレンダー作りとかにチャレンジしてみてください。

日本時刻を出力しよう

書いた人はもうお気づきかもしれませんが、実はphpの日付の出力は世界の標準時刻(ロンドン時間)です。

僕も最初書いた時、「え?時間違くない?」って思いました。

プログラミングって繊細ですよね。

一つ一つ丁寧に命令を書いて上げないと勝手にはやってくれないんですよね。

ここがプログラミングの面白い部分でもあります。

それでは、日本時間にしていきましょう。

date_default_timezone_set('Asia/Tokyo');

行頭に上記を追記するだけです。

「え!?これだけ?」

と拍子抜けした方もいらっしゃるかもしれません。

そうなんです、これだけなんです。

たった1行で日本時間にすることができるなんて本当にすごいですよね。

まとめ

今日はdate関数について勉強してみました。

難しくないんですが、実はとても大切なdate関数。

最後に、今日のおさらいをしましょう。

  1. date関数の引数に所定のフォーマットを渡すと日付が出る
  2. 今日の日付以外を出力をするには、strtotime関数を使用する
  3. 日本時刻にするには、「date_default_timezone_set(‘Asia/Tokyo’);」を行頭に追加する

しっかり身につけてアプリケーション作成に役立ててみてください。