日数を秒数などに換算した値を使いたいとき、日数 × 24 × 60 × 60 で計算できます。
少し面倒ですね。
WordPressはこのような計算に便利な定数が用意されているので、そちらを使いましょう。
時間計算に便利な定数
次の6つの定数が定義されています。
定数 | 意味 | 値 |
---|---|---|
MINUTE_IN_SECONDS | 一分の秒数 | 60 |
HOUR_IN_SECONDS | 一時間の秒数 | 60×60 = 3,600 |
DAY_IN_SECONDS | 一日の秒数 | 24×60×60 = 86,400 |
WEEK_IN_SECONDS | 一週間の秒数 | 7×24×60×60 = 604,800 |
MONTH_IN_SECONDS | 一か月の秒数 | 30×7×24×60×60 = 18,144,000 |
YEAR_IN_SECONDS | 一年の秒数 | 365×30×7×24×60×60 = 6,622,560,000 |
実際の定義は /wp-includes/default-constants.php に次のように記述されています。
- define( 'MINUTE_IN_SECONDS', 60 );
- define( 'HOUR_IN_SECONDS', 60 * MINUTE_IN_SECONDS );
- define( 'DAY_IN_SECONDS', 24 * HOUR_IN_SECONDS );
- define( 'WEEK_IN_SECONDS', 7 * DAY_IN_SECONDS );
- define( 'MONTH_IN_SECONDS', 30 * DAY_IN_SECONDS );
- define( 'YEAR_IN_SECONDS', 365 * DAY_IN_SECONDS );
特定月の秒数と日数を得る
一か月の秒数 MONTH_IN_SECONDS を見ると、30日で計算しています。
実際には31日の月がありますね。
参考までに、特定月の秒数と日数を得る方法も記載しておきます。
- function echo_month_seconds($year,$month){
- if( !is_numeric($year) || !is_numeric($month) ) {
- echo 'パラメーターが正しくない';return;
- }
- $starttime = strtotime( "{$year}-{$month}-01 0:0:0");
- if( $month === 12 || $month === '12') { $year ++; $month = 1; }
- else { $month ++;}
- $endttime = strtotime( "{$year}-{$month}-01 0:0:0");
- $month_seconds = $endttime - $starttime;
- echo "秒数:{$month_seconds}<br>";
- echo '日数:' . ($month_seconds/DAY_IN_SECONDS) . '<br>';
- }
strtotime()関数は、指定された日時をUnix タイムスタンプに変換します。
これは秒なので、月の終わり(次月の始まり)から、月の始めの秒数を引くだけで求める結果を得ることができます。
特定の年の秒数についても、同じような方法で求めることができますね。
■Googleで他サイト検索
■僕がおススメするアフィリエイト教材
■マーケティング施策ツール