TOPへ戻る

【PHP】コンテンツを自動更新!「コピペ用時限設定」

2019.11.15 カテゴリー: ウェブ制作

???「〇〇きゅ〜ん、0時に更新したいコンテンツがあるんだけど〜…お願いできるかなぁ??」
営業〇〇きゅ〜ん「はい!喜んで!」
社畜「…(さついのはどう)」

皆さんはこんな現場に立ち会ったことがあるだろうか。
休日に更新したい、夜中に更新したい、お正月に更新したい。

昨今の働き改革の流れにもかかわらず、サイトコンテンツによっては働き手が残業せざるを得ない時間に更新することもありがちですよね。

今回はPHPコンテンツのページで時限設定ができるコピペ用コードです。

目次

全体のコード

/* 時限 setting 1回貼れば大丈夫 */
date_default_timezone_set('Asia/Tokyo');

$today = date('YmdHi');
/* ↓ 色んな所に使えます ↓ */
if( $today < date('202001010000') ) {
    // 期限前に表示される
} else {
    // 期限後に表示される
} endif ;

これをコピペして、自分の好きな時間に設定してください。

概要

2、3行目

ここを設定しないとエラーやらなんやらで更新どころかクレームが来ます。きをつけなはれや。

/* 時限 setting 1回貼れば大丈夫 */
date_default_timezone_set('Asia/Tokyo');
$today = date('YmdHi');

まずはdate_default_timezone_set()タイムゾーンを設定します。身バレするのが怖いですが筆者は日本に住んでいるので、特に理由がなければ東京時間にセット。

変数$todayに現時刻を代入します。ちなみに各アルファベットの意味は、

  • Y:年(西暦4桁)
  • m:月(2桁 ※1月なら01)
  • d:日(2桁 ※1日なら01)
  • H:時(2桁 ※24時間表記)
  • i:分(2桁 ※5分なら05)

です。

ちなみにWordPressなどヘッダーが共通しているものはテンプレートの最初にでも記述しておけば、記述が一回で済んで幸せになれます。

6行目〜

ここでは決めた期限に合わせて表示非表示を切替えます

if( $today < date('202001010000') ) {
    // 期限前に表示される
} else {
    // 期限後に表示される
} endif ;

見てのとおりですが、ひとまず2020年1月1日0時0分に期限を設定しています。

単純なif..else構文なので何も複雑なことはないです。現在の時間より設定した期限が前か後ろかを判定しています。

設定した期限より現時刻が前であればtrueとなり、後であればfalseです。

気をつける点

このコードで気をつける点はただ一つ。設定する時限の桁数です!

例で出した2020年1月1日0時0分ですが、日本語で書けばすぐ理解できます。でも数字だけで表すと20200101000となり瞬時にはわからないですよね。

ちなみに上の数字は11桁なのでエラーとなり動きません。(動く数字は12桁)

こんなかんじで紛らわしくなるので、慣れないうちは時間ごとに数字を区切って(2020,01,01,00,00)、使うときに区切りを取るようにしましょうそうしましょう

まとめ

長期休みや年末年始に更新があって休みが取れない!なんてことがないように時限が使えるところは積極的に使っていけば脱社畜に近づけますね!

それでは仕事に戻ります…

コメントを残す

入力エリアすべてが必須項目です。メールアドレスが公開されることはありません。

内容をご確認の上、送信してください。

2019.11.15 カテゴリー: ウェブ制作