/***@paramstring$hisStart*@paramstring$hisEnd*@paramint$range*@paramstring$format**@returnarray*/functioncreateHisRange($hisStart='00:00:00',$hisEnd='23:59:59',$range=3600,$format='H:00:00'){$t1=strtotime($hisStart);$t2=strtotime($hisEnd);$arrHis=array();while($t100:00:00[1]=>01:00:00[2]=>02:00:00[3]=>03:00:00[4]=>04:00:00[5]=>05:00:00[6]=>06:00:00[7]=>07:00:00[8]=>08:00:00[9]=>09:00:00[10]=>10:00:00[11]=>11:00:00[12]=>12:00:00[13]=>13:00:00[14]=>14:00:00[15]=>15:00:00[16]=>16:00:00[17]=>17:00:00[18]=>18:00:00[19]=>19:00:00[20]=>20:00:00[21]=>21:00:00[22]=>22:00:00[23]=>23:00:00)*/问题如何将$format传入到array_map当中
2 回答
精慕HU
TA贡献1845条经验 获得超8个赞
returnarray_map(function($time)use($format){returndate($format,$time);},range(strtotime($hisStart),strtotime($hisEnd),$range));关键字:闭包
富国沪深
TA贡献1790条经验 获得超9个赞
returnarray_map(function($t)use($f){returndate($f,$t);},range(strtotime($s),strtotime($e),$r));如果用不了use关键字的话低版本的话还可以用global:$format="H:i:s";functionfm($t){global$format;returndate($format,$time);}array_map('fm',range(strtotime($hisStart),strtotime($hisEnd),$range));当然用Class写这个也是可以的,就是看起来特别麻烦...ClasshisRange{public$s,$e,$r,$f;function__constructor($s='00:00:00',$e='23:59:59',$r=3600,$f='H:00:00'){$this->s=strtotime($s);$this->e=strtotime($e);$this->r=$r;$this->f=$f;}functionrun(){returnarray_map(array($this,'fm'),range($this->s,$this->e,$this->r));}functionfm($t){returndate($this->f,$t);}}$range=newhisRange();$s=$range->run();好吧,我大概只是来提供不同的解法的...
添加回答
举报
0/150
提交
取消