【PHP】曜日と時間を検出して、いつまでに対応するかを表示する

how to

営業時間中であれば、お問合わせいただいてから何分以内に対応しますよという文句を自動で表示したい。

デジカメが普及してからは見なくなりましたが、昔写真を現像してた頃、写真屋さんに

◆現在の時間
◆出来上がりの時間

って感じで2つ時計がありましたよね。そんなイメージのプログラムです。

ただ、営業時間が18:00までの写真屋さんに17:55にカメラを持ち込んでも出来上がり時間時計が示す、18:50とかに現像完了するわけでは無く、写真屋のおっちゃんから

「明日の10:00頃に取りに来てね」

って言われますよね。

それも含め、自動で表示出来るようにしました。

phpに関してはずぶの素人なのでダサいコードで恥ずかしいですが、戒めと覚書ということで記載しておきます。
※phpに限らずプログラム全般ほとんどできませんが。

動作のイメージとしては、

1.現在の時間と曜日取得
2.営業時間であればその時間から指定した時間(何分後)までに連絡しますと表示
3.営業時間外であれば翌営業日の何時までに連絡しますと表示

てな感じです。

[php]

<?php

////////////////条件入力////////////////

//営業時間設定(始業)
$start = 9;
//営業時間設定(終業)
$end = 18;

//お問合わせから対応までの時間(記入例:+X minutes +X hour)
$timestamp = strtotime( "+30 minutes" );

//休日のお問合わせの翌営業日の対応時間(翌日の何時までに対応)
$plustime = 10;

////////////////条件入力終了////////////////

////////////////プログラム////////////////

//曜日番号取得0-6(日-土)
$weekno = date(‘w’);

//曜日番号が1以上5以下(月-金)で営業時間内なら
if( $weekno >= 1 and
$weekno <= 5 and
date("H") >= $start and
date("H") < $end )
{
echo date("Y/m/d H:i",$timestamp). ‘までに連絡’;
}

//曜日番号が1以上5以下(月-金)で営業時間以前ならその日のplustimeまでに連絡
if( $weekno >= 1 and
$weekno <= 5 and
date("H") < $start )
{
echo date("Y/m/d {$plustime}:00"). ‘までに連絡’;
}

//曜日番号が1以上4以下(月-木)で営業時間以降なら翌日のplustimeまでに連絡
if( $weekno >= 1 and
$weekno <= 4 and
date("H") >= $end )
{
echo date("Y/m/d {$plustime}:00", strtotime("+1 day")). ‘までに連絡’;
}

//曜日番号が5(金)で営業時間以降なら翌々々日(月)のplustimeまでに連絡
if( $weekno == 5 and
date("H") >= $end )
{
echo date("Y/m/d {$plustime}:00", strtotime("+3 day")). ‘までに連絡’;
}

//曜日番号が0(日)なら翌日(月)のplustimeまでに連絡
if( $weekno == 0 )
{
echo date("Y/m/d {$plustime}:00", strtotime("+1 day")). ‘までに連絡’;
}

//曜日番号が6(土)なら翌々日(月)のplustimeまでに連絡
if( $weekno == 6 )
{
echo date("Y/m/d {$plustime}:00", strtotime("+2 day")). ‘までに連絡’;
}

?>
[/php]

ifの羅列でダサいんですが、プログラムの意味合いを分かりやすくするために作って見ました。

もっとこうしたほうが良いよ。ってか間違ってるよ(一応動作確認しましたが)あればご指摘いただければ幸いです。

いきなりはじめるPHP~ワクワク・ドキドキの入門教室~
谷藤賢一
リックテレコム
売り上げランキング: 1,213

コメント

タイトルとURLをコピーしました