指定した日の1日前を取得する。
戻り値は8桁の文字列、年月日。
使い方
echo getPrevDayStr(2018,8,1);//20180731
function getPrevDayStr($sy,$sm,$sd){
$ts_hour=date("G");
$ts_min=date("i");
$ts_sec=date("s");
$sf_year=date("Y",mktime($ts_hour,$ts_min,$ts_sec,intval($sm),intval($sd-1),intval($sy)));
$sf_month=date("n",mktime($ts_hour,$ts_min,$ts_sec,intval($sm),intval($sd-1),intval($sy)));
$sf_date=date("j",mktime($ts_hour,$ts_min,$ts_sec,intval($sm),intval($sd-1),intval($sy)));
$tmp="";
$tmp=sprintf("%04d%02d%02d",$sf_year,$sf_month,$sf_date);
return $tmp;
}
応用:一手間
また、少し一手間を掛けて、
年月日を分けて渡すやり方ではなく、8桁の年月日の値を1つだけ渡して
1日前の日にちを取得する関数。
同じようにgetPrevDayStrを呼び出しているが、
呼び出す前にsubstrで文字列の抽出処理を行っています。
function getPrevDayStrFromYMD($dt){
$sy=substr($dt,0,4);
$sm=substr($dt,4,2);
$sd=substr($dt,6,2);
return getPrevDayStr($sy,$sm,$sd);
}