元々は「twitter botで平日のみ発言するには?」という質問をいただいてました。少し間違った回答をしていたこともあったのですが、少し別の要件(曜日を日本語で取得する)ことも合わせてここにメモがわりに記録しておきます。
まず、PHPでサーバーが保持する現在時刻を取得することが出来ます。当然レンタルサーバーなどでタイムゾーン(日本の時間であるか?)などの設定が合っていないと期待した時間が帰ってきません。当然ですが、時刻設定がちゃんとされていないと、年月日単位で間違っている恐れもあるでしょう。
具体的にPHPで現在の時間を取得するにはdate関数を使用します。フォーマットを指定して希望する形式で出力することが出来ます。しかし、曜日に関しては「Sun」「Sat」などアルファベット3文字で出力しても英検3級のボクには辛いわけです。
そこで、配列に曜日を仕込んでこの配列に代入された曜日の漢字を出力するようにしたいと思います。出力された文字(曜日の名前)は$youbiという変数に代入します。
[php]
$weekday = array( "日", "月", "火", "水", "木", "金", "土" );
$youbi=$weekday[date("w")];
[/php]
これで、$youbiに曜日名が入っているので、この変数に土・日が含まれていたら、土日の処理、それ以外だったら平日の処理というふうに条件分岐します。祝日というのも世の中にはありますが、ここでは省きます。
[php]
if ($youbi == "土" | $youbi == "日") { // 土日なら実行する
echo "今日は休日ですよ";
echo $youbi;
} else { // 土日以外なら実行する
echo "今日は平日ですよ";
echo $youbi;
}
[/php]
念のため、曜日の名前もecho関数で表示するようにしています。
このPHPソースをアップしたので、よかったら使っていてください。
youbi.php
twitter botで動きを制御するには毎日定時cronでPHP等を呼び出している方が多いと思いますが、ここでそのPHP内に土日であれば、発言しないようにする、とすれば、当初の問題解決につながると思います。
コメント