PHPのdate関数で日付「昨日・明日・1時間前」を取得しよう!


PHPのdate関数を使えば自分の取得したい日付を1行でズバッと指定できます。
もう簡単すぎて、プログラムというよりは言葉で伝えてあげるだけでいい言語ですね。
昨日や明日といったフルローテな指定から1時間前や1時間後といったマニアックな指定まで。
さぁ、時間旅行のはじまりです。

SPONSORED LINK

PHPで昨日の日付を取得してみる

まずは昨日の日付を取得するプログラムをみてみましょう。

$yesterday = date("n/d", mktime(0, 0, 0, date("m"), date("d")-1, date("Y")));
echo "昨日は " . $yesterday . "です。";

これはmktimeを使って昨日の日付を取得した例ですが、解説がいらないほど単純ですね。
mktimeで現在の日付を取得する時にdayの部分を-1するだけです。

でももっと簡単なstrtotime関数もあるので、見て行きましょう。

PHPで過去の日付や時間を取得する

PHPのdateで日付を操作してみます。昨日といった日付から1時間前といった時刻まで意のままです。
▼過去

1日前 date("Y-m-d H:i:s",strtotime("-1 day"));
1ヶ月前 date("Y-m-d H:i:s",strtotime("-1 month"));
1年前 date("Y-m-d H:i:s",strtotime("-1 year"));
1週間前 date("Y-m-d H:i:s",strtotime("-1 week"));
1時間前 date("Y-m-d H:i:s",strtotime("-1 hour"));
1分前 date("Y-m-d H:i:s",strtotime("-1 minute"));
1秒前 date("Y-m-d H:i:s",strtotime("-1 second"));

PHPで1秒前を取得する機会がある人にまだ会ったことはありませんが、とても細かくて繊細なプログラムに使う日がくるかもしれません。
たまにAPIで1秒に1回までという制限がありますが、世の中は秒で管理されているのですね。
そんな事を考えていると沖縄の人に憧れを抱きます。

PHPで未来の日付や時間を取得する

さて今度は未来です。まるで自分がドラえもんになったつもりでPHPをコーディングしましょう。
▼未来

1日後 date("Y-m-d H:i:s",strtotime("+1 day"));
1ヶ月後 date("Y-m-d H:i:s",strtotime("+1 month"));
1年後 date("Y-m-d H:i:s",strtotime("+1 year"));
1週間後 date("Y-m-d H:i:s",strtotime("+1 week"));
1時間後 date("Y-m-d H:i:s",strtotime("+1 hour"));
1分後 date("Y-m-d H:i:s",strtotime("+1 minute"));
1秒後 date("Y-m-d H:i:s",strtotime("+1 second"));

もうね、簡単すぎて申し訳ござい。
PHPで未来の日付を取得していると気持ちが明るくなるのはなぜでしょう。
それは明るい未来が待っている証拠なのかもしれません。

まとめ

PHPの日付に欠かせないstrtotime関数のフォーマットを暗記してしまえば、コーディング中にいつでもトリップできますね。
もしも現実の世界に今すぐ戻りたいならstrtotime(“now”);を唱えれば良いと古い書物に記されていました。
どうかご無事で。

今日も知識欲は止まらない。

関連トピック

PHPでスマホのUAからキャリア判別する唯一の方法

PHPを使ってスマートフォンのUserAgentからキャリアを判別するたった一つの方法メモです。 今まではキャリアごとの制約やサービス

SDカードに「XAMPP Portable」をインストールしてPHP開発環境ゲット!

PHP開発環境として何年かぶりにXAMPPの導入を決めたんですが、XAMPPの開発環境自体をクラウドで同期できないかというトリッキーな方

PHPでPingを送信する方法を関数化する

PHPを使ってサイトの更新情報などをPINGサーバーに送信する方法とその関数化です。 PINGの仕組みは、サイトの情報を記載したXML

PHPエラー対処方法「malformed header from script. Bad header=No recipient addresses found i」

PHPからメールを送信する際に「malformed header from script. Bad header=No recipien

文字コードが違う!SJISのページをUTF-8に変更したらクエリ付URLが死んだ話

ガラケーサイトからスマホやPC向けサイトへとサイトを拡大する場合、 SJISだった文字コードを「この際だからUTF-8に一括で変更して

PHPエラー対処方法「simplexml_load_file」&「simplexml_load_string」

PHP simplexml_load_fileを使用して「I/O warning : failed to load external e

MySQL INSERT エラーNo.1064 の原因と対処方法メモ

MySQLへのINSERT時などに構文エラー1064が発生した場合は、 使用できない文字が混入しているという原因がほとんどです。 誤

MySQL intレコードにランダム整数を一括挿入してみた

MySQLのテーブル hoge の intカラム test に10までの整数をランダムに挿入してみました。 範囲指定や上限の変更も簡単

公開日:2009/05/05