PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのタイムスタンプを使って、今日が月曜日か月の初日かを判定する方法

はじめに

PHPで特定の日付が「月曜日」や「月の初日」に該当するかどうかを確認したい場合、date() 関数を活用するのが最もシンプルな方法です。date() 関数は、指定したフォーマット文字列に従って整形された日付文字列を返します。引数として整数型のタイムスタンプを渡すとその時刻をもとに処理され、タイムスタンプを省略した場合は現在の時刻(time() の戻り値)が自動的に使用されます。

つまり、タイムスタンプは省略可能なパラメータであり、指定しなければ time() の値がデフォルトとして適用されます。

date() 関数の主なフォーマット文字

  • j: 月の中の日を先頭にゼロを付けずに返します(1〜31)。
  • D: 曜日を3文字の英語テキスト形式で返します(Mon、Tue、Wed など)。

サンプルコード

$timestamp = time(); // 現在のタイムスタンプ

// 今日が月の初日(1日)かどうかを確認
if(date('j', $timestamp) === '1')
    echo "今日は月の初日です\n";

// 今日が月曜日かどうかを確認
if(date('D', $timestamp) === 'Mon')
    echo "今日は月曜日です\n";

実行結果

上記のコードを実行すると、条件に一致した場合に以下のような出力が得られます。

今日は月の初日です

解説

この例では、date('j', $timestamp)'1' を返した場合、つまり今日が毎月1日であるときに最初の if 文が出力を行います。一方、date('D', $timestamp)'Mon' を返した場合は月曜日であることを意味し、2番目の if 文が出力を行います。

なお、厳密な比較演算子 === を使用している点にも注目してください。これにより、意図しない型変換による誤判定を防ぐことができます。

また、過去や未来の特定の日付をチェックしたい場合は、strtotime()mktime() を使って目的の日付のタイムスタンプを生成し、それを $timestamp 変数に代入するだけで同じロジックを再利用できます。

  1. ExcelのNETWORKDAYS関数の使い方|土日・祝日を除いた営業日数を簡単に計算する方法

    Microsoft ExcelのNETWORKDAYS(ネットワークデイズ)関数は、日付/時刻関数の一つで、開始日から終了日までの間に含まれる「完全な稼働日(平日)」の日数を返します。この関数は、週末(土曜日と日曜日)および引数で指定された祝日を自動的に除外して計算します。なお、引数が無効な場合は、エラー値 #VALUE! が返されます。 NETWORKDAYS関数の書式は次のとおりです。=NETWORKDAYS(開始日, 終了日, [祝日]) NETWORKDAYS関数の構文 開始日(start_date):計算の起点となる日付。必須の引数です。 終了日(end_date):計算の終点とな

  2. Windows 10のチェックディスク(エラーチェック)ユーティリティの使い方【完全ガイド】

    Microsoftは、WindowsユーザーとそのPCに保存されたファイルやデータを、データ損失やハードウェアの深刻な障害につながりかねない突然のトラブルから守るために、常に改良を重ねてきました。 特に複数のパーティションを作成している環境で多くのユーザーを悩ませるのが「ディスクエラー」です。これは、ドライブに不良セクタが発生し、ハードディスクの読み書き機能に支障が出たときに起こる問題です。 幸いなことに、Microsoftはこうした問題が発生してもユーザーを放置しないよう、問題を自動的にスキャンして修復してくれる組み込みツールを用意しています。あまり知られていませんが、すべてのWindow