過ごしやすい秋の日はいずこへ?という感じに初冬の肌寒さを感じる気候になってきました。お世話になっております、たかおファンです。
WEBページの更新作業をすると、時々現れる時間指定の差し替え作業・・・
日曜の夜中の0時だったりすることもあり、さすがにその日時は会社も休みでわざわざ出社するのも難ですし、時間的にも終電に間に合わないので、帰ることもできません。
そこで、頼るのは何かしらのプログラムを使ってサーバ自身に切り替えさせる手段です。よく考えられるものとして・・・
- cronでスクリプトまたはコマンド実行
- 切り替え予定のページをPHP化
- MTなどのCMSで日時指定投稿
などがあると思います。ですが、今回はcronの設定権限がないサーバ上ですでにある静的ページを指定日時に別の内容に置き換えるというものに対してはどうするか?というのを考えてみました。
そこで出てくるのがSSIです。通常はshtmlという特殊な拡張子のファイルに対してSSIを適用させるのが一般的ですが、設定次第で拡張子がhtmlであっても動作します。
で、「とほほのSSI入門」を見たところDATE_LOCALという環境変数から時刻が取得できるようです。
とほほのSSI入門
そして、#config timefmtという記述を使えば時刻フォーマットが指定できるようです。じゃあ、年月日時分秒をフラットに並べて整数比較したらどうだ?と思ったのでやってみました。ちなみに条件分岐は#if expr=”?”ですね。
例として、2010年10月20日12時00分以降に表示内容が変わるというようにしてみました。
<!--#config timefmt="%Y%m%d%H%M%S" -->
<!--#if expr="${DATE_LOCAL} >= 201010201200" -->
After
<!--#else -->
Before
<!--#endif -->
結果は・・・成功です。12時前までは「Before」と表示されていたのですが、過ぎた瞬間に「After」になりました。
テーレッテー終了?
指定時刻の最後の「00」を抜いてもうまくいきます。どういう仕組みかよくわかりませんが。
あまりにあっさりうまくいってしまったので拍子抜けです。これで環境によってはダメ!とか罠があったらガッカリなんですが…
とりあえず、実践で使ってみたいとおもいます。