作って学べる
プログラミング講座
アプリを作りながら学習
自分のペースですぐに始められる
困ったら何回でも質問可能
カレンダー

【PHP】strtotime 関数を使うときの注意点

Sara

この記事は簡単シンプルなPHPカレンダーの作り方の補足記事です。

PHP の strtotime 関数を使えば、●日後、●週間前という日付を簡単に取得できます。

// 今日の2日後
date('Y-m-d', strtotime('+2 day'));
// 今日の1週間前
date('Y-m-d', strtotime('-1 week'));
// 2023年12月1日の1ヶ月前
date('Y-m-d', strtotime('2023-12-01 -1 month'));

とても便利な関数ですが、日付を使って●ヶ月前、ヶ月後の年月を取得するときに注意が必要になることがあります。

この記事では「どんな場合に注意するべきかとその対処法」を紹介します。

strtotime 関数の注意点

1ヶ月前の年月を取得する場合

まずは2つの例を使って1ヶ月前の年月を出力してみましょう。

例① 基準日が12月1日の場合

echo date('Y-m', strtotime('2023-12-01 -1 month'));
// 出力結果:2023-11

例② 基準日が12月31日の場合

echo date('Y-m', strtotime('2023-12-31 -1 month'));
// 出力結果:2023-12 ← 11月にはなりません

1ヶ月後の年月を取得する場合

続いて1ヶ月後の年月も出力してみましょう。

例① 基準日が1月1日の場合

echo date('Y-m', strtotime('2024-01-01 +1 month'));
// 出力結果:2024-02

例② 基準日が1月31日の場合

echo date('Y-m', strtotime('2024-01-31 +1 month'));
// 出力結果:2024-03 ← 2月になりません

このように●ヶ月前、●ヶ月後の年月が予期した通りに取得できない可能性があります。

特に2月は「28日」「29日」があるので注意が必要になります。

正しい年月を取得する方法

正しい結果を得られるようにするには「基準日を1日にする」のがオススメです。

echo date('Y-m', strtotime('2023-12-01 -1 month'));
// 出力結果:2023-11

echo date('Y-m', strtotime('2024-01-01 +1 month'));
// 出力結果:2024-02

どちらも期待通りの年月が表示されていますね。

strtotime 関数はとても便利な関数ですが、基準となる日付にご注意ください!

具体的な使い方は簡単シンプルなPHPカレンダーの作り方でも紹介しています。

簡単シンプルなPHPカレンダーの作り方
簡単シンプルなPHPカレンダーの作り方
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
ABOUT ME
Sara
書籍やオンライン講座でプログラミングを勉強してフリーランスのプログラマーになりました。
このサイトでは「わかりやすく・シンプル」をモットーに、プログラミングの基礎からアプリ開発まで紹介します。
独学でプログラミングを勉強をしている方、基礎は勉強したけれど次に何をすれば良いか分からない...という方のお役に立てるサイトを目指しています。
主な使用言語:Java / Kotlin / PHP
>> 詳しいプロフィールはこちら
>> 書籍を出版しました!
>> お問い合わせはこちら
本格的に学びたい方へ

Code for Fun プログラミング講座

Code for Fun プログラミング講座では、プログラミングの基礎からアプリ開発まで学ぶことができます。

わかりやすく・シンプルをモットーに

  • 同じコードを書けば必ず完成できること
  • 専門用語を使いすぎないこと

を重視しています。

POINT 01

動くコード

プログラミングの文法だけを学んでも、そこから動くアプリを開発をするのは難しいです。

Code for Fun のプログラミング講座では、ゲームやカレンダーなど「アプリとして機能するもの」を作りながらプログラミングを学ぶことができます。

POINT 02

自分のペースで

オンライン講座なので、ご自身のペースで学習を進めて頂けます。

分からないことがあっても、前のレッスンに戻ることができるので安心です。

お申し込みしたその日からからすぐに始めることができます。

POINT 03

個別サポート

プログラミング学習では、エラーが起きることはよくあります。そんな時はお気軽にお問い合わせください!

コメント欄またはメールによるサポートを回数無制限でご利用頂けます。(*講座に関連するご質問のみ対応)

今すぐ無料でお試し

0
この記事にコメントするx
記事URLをコピーしました