勉強したことのメモ

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

PHPで土日祝を避ける

   

広告物を土日祝だけ非表示にしたいと言われ、
できたら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でログファイルから指定行数表示させる

エラーログを最新分から指定行数表示させる プログラムがあって、どういった作りにな ...

PHP Qr Codeライブラリを使用してQRコードを生成する方法

PHPでQRコードを生成したい。大分前にGoogle Chart APIを用いて ...

PHPのカレンダー関数

カレンダー関数で使えるかもしれないものをメモ。 ■cal_days_in_mon ...

MySQLでのバッククオート

phpmyadminを使っていると``←みたいな括りを見るけど これなんなん?  ...

PHPで複数のファイルをまとめてzipファイル化し、ダウンロードさせる方法

PHPで複数のファイルをまとめてzipファイル化し、ユーザーにダウンロードさせた ...

PHPで一括出力ではなく、ひとつずつ順次に出力する方法

PHPで重たい処理とかをしている際に、途中報告みたいな形で順次出力させる方法のメ ...

mysqldumpが使えないレンタルサーバでMySQLのバックアップ

mysqldumpが使えないレンタルサーバで開発を行うことがあり、尚且つ他社に使 ...

PHPでログインフォームにひらがな認証を設置する方法

ログインフォームに平仮名認証を設置したい。英数字認証だとSecurimageとい ...

PHPで変数名を動的に変えて使う方法

変数名を動的に変えて使用したかった。 調べてみると可変変数というものがあり、希望 ...

ページング処理用PHP

/* @内容 ページング処理のfunction @使い方 //******親ペー ...