勉強したことのメモ

webプログラマが勉強したことのメモ。

PHPで土日祝を避ける

      2014/05/17

広告物を土日祝だけ非表示にしたいと言われ、
できたらPHPで行いたかった。

調べてみるとGoogleカレンダーAPIから取得するか、
配列に祝日を入れるか。

できたら前者でいきたかったけど、指定サーバーの
PHPバージョンが古くjson_decode関数が使えなかった為
後者を用いた。

今後も使いそうなのでメモ。

GoogleカレンダーAPIを用いる方法
<?php
$flg = true;
$today = date('Y-m-d');

if (date("w", strtotime($today)) == 0 || date("w", strtotime($today)) == 6) { //日曜or土曜の場合はフラグをfalse
$flg = false;
} else {
$holidays_url = sprintf(
'http://74.125.235.142/calendar/feeds/%s/public/full-noattendees?start-min=%s&start-max=%s&max-results=%d&alt=json' ,
'outid3el0qkcrsuf89fltf7a4qbacgt9@import.calendar.google.com' ,
date('Y-m-d'),
date('Y-m-t'),
10 // 最大取得数
);
if ($results = file_get_contents($holidays_url)) {
$results = json_decode($results, true);
$holidays = array();
foreach($results['feed']['entry'] as $val) {
if ($val['gd$when'][0]['startTime'] == $today) {
$flg = false;
}
}
}
}
var_dump($flg); //true->土日祝以外 / false->土日祝
?>

■配列に祝日を入れる方法
<?php
$flg = true;
$today = date('Y-m-d');

$holiday = array(
'2014-01-01','2014-01-13','2014-02-11','2014-03-21','2014-04-29','2014-05-03','2014-05-04','2014-05-05','2014-05-06','2014-07-21','2014-09-15','2014-09-23','2014-10-13','2014-11-03','2014-11-23','2014-11-24','2014-12-23',

'2015-01-01','2015-01-12','2015-02-11','2015-03-21','2015-04-29','2015-05-03','2015-05-04','2015-05-05','2015-05-06','2015-07-20','2015-09-21','2015-09-22','2015-09-23','2015-10-12','2015-11-3','2015-11-23','2015-12-23',

'2016-01-01','2016-01-11','2016-02-11','2016-03-20','2016-03-21','2016-04-29','2016-05-03','2016-05-04','2016-05-05','2016-07-18','2016-09-19','2016-09-22','2016-10-10','2016-11-03','2016-11-23','2016-12-23',
);
if (array_search($today, $holiday)) {
$flg = false;
}

var_dump($banner_flg);
?>

 - PHP

  関連記事

PHPで文字列の操作(検索、置換、切り出し)

しばしば行う文字列の操作をまとめておく。 ----- ■文字列の長さを調べる e ...

フォーム用テンプレPHP

<?php ini_set( 'display_errors', 0 ); ...

Opauthで「Please change the…」エラー

Opauthを使用中に「Notice: Please change the va ...

PHPとSQLiteで簡易BBSの作成

PHPとSQLiteの練習で簡易掲示板を作ったのでメモ。   &nbs ...

PHPでファイルパスorフォルダパスの確認

PHPで画像とか触る際にフォルダのパス、ファイルのパスを 知りたいことがあったの ...

PHP側での画像最大アップロードサイズの確認

画像がアップロードできず、恐らくサイズ指定にひっかかっているので 最大サイズを調 ...

PHPで画像にモザイクをかけて保存

やりたかった事はPHPで ・モザイク処理 ・元の画像とは別にファイル名をつけて保 ...

PHPバージョンの確認

PHPでバージョンの確認をする際にphpinfo()を 使って調べてたけど、バー ...

setcookieで「Cannot modify」エラー

PHPでsetcookieを使うと「Warning: Cannot modify ...

WordPressで任意のクエリをページに出力するプラグイン

先日、「WordPressで任意のクエリをページ内で出力する方法 」という記事で ...