PHP で昨日の日付を取得する

Shraddha Paghdar 2023年1月30日
  1. PHP の date()
  2. PHP の DateInterval
  3. PHP で strtotime() を使用して昨日の日付を取得する
  4. PHP で mktime() を使用して昨日の日付を取得する
  5. PHP で time() を使用して昨日の日付を取得する
  6. PHP で DateInterval を使用して昨日の日付を取得する
PHP で昨日の日付を取得する

この記事では、PHP で昨日の日付を取得する方法を紹介します。

解決策を学ぶ前に、date()の概念を理解しましょう。

PHP の date()

これは、フォーマットされた日付文字列を返す組み込みの PHP 関数です。

date() の構文

date(format, timestamp)

パラメーター

format:これは出力日付文字列フォーマットを指定する必須パラメータです。オプションのいくつかは次のとおりです。

  1. d - 01 から 31 の範囲の月の日
  2. D - 1 日のテキスト表現(3 文字)
  3. m - 01 から 12 の範囲の月の数値表現
  4. M - 1 か月のテキスト表現(3 文字)
  5. Y - 1 年の 4 桁の表現
  6. y - 1 年の 2 桁の表現
  7. a - 小文字の午前または午後
  8. A - 大文字の AM または PM

timestamp:Unix タイムスタンプを整数形式で指定するオプションのパラメータです。指定しない場合、デフォルト値が現在の現地時間として使用されます。

PHP の DateInterval

これは、日付間隔を表す PHP のクラスです。また、入力文字列を受け入れ、入力文字列から DateInterval を設定する静的メソッドも提供します。

これで、date()strtotime()、および mktime() の基本概念が理解できました。これらの関数をすべて使用して、昨日の日付を取得します。

PHP で strtotime() を使用して昨日の日付を取得する

strtotime() は、組み込みの PHP 関数で、英語のテキストの DateTime を 1970 年 1 月 1 日 00:00:00GMT の Unix タイムスタンプに解析します。

strtotime() の構文

strtotime(time, now);

パラメータ

  • time:これは必須のパラメータであり、日付/時刻の文字列を指定します。
  • now:これはオプションのパラメータであり、相対的な日付を計算するための基礎として使用されるタイムスタンプを指定します。

yesterday または -1 daysstrtotime 関数に渡して、昨日のタイムスタンプを取得できます。上で紹介したように、タイムスタンプは date() 関数によって文字列形式の日付に変換できます。

コード例:

<?php
    // Get yesterdays date
    echo date('d.m.Y',strtotime("-1 days")). "\n";
    echo date('d M Y',strtotime("yesterday")); 
?>

出力:

24.10.2021
24 Oct 2021

PHP で mktime() を使用して昨日の日付を取得する

これは、日付の Unix タイムスタンプを返す組み込みの PHP 関数です。この関数は、渡されたパラメーターが日付(GMT 日付ではない)を表すことを除いて、gmmktime() とほとんど同じです。

構文

mktime(hour, minute, second, month, day, year)

パラメータ

  • hour:これはオプションのパラメータで、時間を指定します。
  • minute:分を指定するオプションのパラメータです。
  • second:秒を指定するオプションのパラメータです。
  • month:月を指定するオプションのパラメータです。
  • day:日を指定するオプションのパラメータです。
  • year:年を指定するオプションのパラメータです。

コード例:

<?php
    $m = date("m"); // Month value
    $de = date("d"); // Today's date
    $y = date("Y"); // Year value

    echo "Yesterday's date was: " . date('d-m-Y', mktime(0,0,0,$m,($de-1),$y)); 
?>

出力:

Yesterday's date was: 24-10-2021

yearmonth の値は、今日と昨日で同じです。昨日の day の値は、今日の値より 1つ少なくなっています。

PHP で time() を使用して昨日の日付を取得する

time() 関数は現在のタイムスタンプを返します。その値を引くと、昨日の同じ時刻のタイムスタンプが得られます。

コード例:

<?php
    echo date('d M Y', time() - 60 * 60 * 24);
?>

出力:

24 Oct 2021

PHP で DateInterval を使用して昨日の日付を取得する

これは、日付間隔を表す PHP のクラスです。また、入力文字列を受け入れ、入力文字列から DateInterval を設定する静的メソッドも提供します。

DateInterval() の構文

new DateInterval($period);

パラメータ

$period:文字列の形式で時間を指定する必須パラメーターです。たとえば、P1D は 1 日を指定します。PT1H は 1 時間を指定します。

  1. P$numberD - 1 日の形式の時間。 $number は 1〜31 の範囲です。
  2. P$numberM - 月の形式の時間。 $number は 1〜12 の範囲です。
  3. P$numberY - 年の形式の時間。 $number は 1〜100 の範囲です。
  4. PT$numberH - 1 時間形式の時間。 $number は 1〜24 の範囲です。
  5. PT$numberM - 1 分の形式の時間。 $number は 0〜60 の範囲です。
  6. PT$numberS - 2 番目の形式の時間。 $number は 0〜60 の範囲です。

DateInterval::createFromDateString() の構文

public static DateInterval::createFromDateString(string $datetime);

パラメータ

$datetime:文字列形式で日付/時刻を指定する必須パラメーターです。

yesterdaycreateFromDateString() に渡し、P1DDateInterval 関数に渡して、昨日のタイムスタンプを取得できます。このタイムスタンプを現在のタイムスタンプに加算または減算でき、結果のタイムスタンプは date() 関数によって文字列形式の日付に変換できます。

コード例:

<?php
    $date = new DateTime();
    $date->add(DateInterval::createFromDateString('yesterday'));
    echo $date->format('d M Y') . "\n";

    $date = new DateTime();
    $date->sub(new DateInterval('P1D'));
    echo $date->format('d M Y') . "\n";
?>

出力:

24 Oct 2021
24 Oct 2021
Shraddha Paghdar avatar Shraddha Paghdar avatar

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.

LinkedIn

関連記事 - PHP Date