【PHP】本日の日付を基準に、5,10日を締切とした画像を動的に出力

本日の日付を基準に、5,10日を締切とした画像を動的に出力したい。

1~5日→5日、6~10日→10日、25~31日→末日の画像が出力される処理を考えてみた。

日付画像出力クラス

class ImgPass{	

	private $month;
	private $day;
	private $arr_pass;
	private $arr_num;
	private $deadline;
	 
	public function ImgPass(){
		$day_max = 5;
		// 月日取得
		$this->month = date('n');
		$this->day = floor(((date('j')-1)/5));
		if($this->day > $day_max){
			$this->day = $day_max;
		}
	
		// 画像パス・画像番号配列
		$this->arr_pass = array('m' => 'm', 'd' => 'd');
		$this->arr_num = array('m' => $this->month, 'd' => $this->day);
	
		$this->datePass($this->arr_pass, $this->arr_num);
	}
 
	public function datePass($p, $n){
		$arr_keys = array_keys($p);
		
		foreach($arr_keys as $key){
			$this->deadline[$key] = $p[$key].$n[$key].'.png';
		}
	}
 
	public function getPass(){
		return $this->deadline;
	}
}

実行例

$psss = new ImgPass();
print_r($psss->getPass());

‘m1.png’~’m12.png’と’d0.png’~’d5.png’の画像を準備すれば完成!!

【手続型】

// 月日取得
$month = date('n');
$day = floor(((date('j')-1)/5));
$day_max = 5;
if($this->day > $day_max){
	$this->day = $day_max;
}

// 画像パス・画像番号配列
$arr_pass = array('m' => 'm', 'd' => 'd');
$arr_num = array('m' => $month, 'd' => $day);

$deadline = passPut($arr_pass, $arr_num);

print_r($deadline);

function passPut($p, $n){
	$arr_keys = array_keys($p);
	
	foreach($arr_keys as $key){
		$deadline[$key] = $p[$key].$n[$key].'.png';
	}
	return $deadline;
}

手続型のコードも書いてみたのでサービス!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>