タイミング|機能
投稿者: bjbs_270
以前、月次レポートの統計を作成する際、タイトルのような関数を使って他の人を組み合わせてmktime()関数を使って書いたのですが、後からエラーが出続けてとてもイライラしました。週末に少し時間をかけて、一部の村民に役立つことを願って書きました。
PHP コード:------------------------------------------ --- ----------------------------------
/*
* 著者: Xin鄧小平
* 関数: 指定した時刻から N か月前に押し出す関数を実装します
* month($ymd,$len) $ymd 時刻、$len が数か月前に押し出します
* $ymd='2005-01-01';
* /
function month($ymd='',$len='12'){
$month = array();
$lang = $lang."";
if($ymd){//時間形式が正しいかどうかを確認します
if(!ereg("([0-9]{4})-([ 0-9] {1,2})-([0-9]{1,2})",$ymd)){
echo "<script>alert('関数パラメータの日付形式が間違っています' );history.back( )</script>";
exit;
}
}
if($len){
if(!ereg("[0-9]+",$len)){
echo $lang."< script>alert('関数の時間長に不正なフィールドが含まれています');history.back()";
exit;
}
}
for($i=0 ;$i if($i==0){
$mktime = $ymd?strtotime($ymd):time();
}
$month[] = date("Y-m ",$mktime);/ /ニーズに応じて必要な形式を設計できます
$day = date("t",$mktime);
if($i==0)
$reday = date("d ",$mktime);
else
$reday = $day;
$t1 = $mktime;
$mktime=date("Y-m-d",mktime(date("H",$t1),date("i", $t1),date("s ",$t1),date("m",$t1),date("d",$t1)-$reday,date("Y",$t1)));
$mktime =strtotime($mktime) ;
}
return $month;
}
$month = month();
foreach($month as $key => $v){
echo $v."
}
?> ;
----------------------------------------------------- -------- --------------------------------
効果は次のとおりです:
2005 -01
2004-12
2004-11
2004-10
2004-09
2004-08
2004-07
2004-06
2004-05
2004-04
2004-03
2004- 02