基于PHP中的时间间隔拆分数组
发布时间:2020-12-13 16:45:11 所属栏目:PHP教程 来源:网络整理
导读:我正在寻找一种基于数组中包含的时间间隔来拆分数组的方法.所以,例如, Array ( [0] = Array ( ['type'] = Text Format ['interval'] = 30 ['init'] = 2012-04-30 09:00:00 ['final'] = 2012-04-30 10:00:00 ) [1] = Array ( ['type'] = Word Format ['interv
我正在寻找一种基于数组中包含的时间间隔来拆分数组的方法.所以,例如,
Array ( [0] => Array ( ['type'] => Text Format ['interval'] => 30 ['init'] => 2012-04-30 09:00:00 ['final'] => 2012-04-30 10:00:00 ) [1] => Array ( ['type'] => Word Format ['interval'] => 12 ['init'] => 2012-04-28 13:00:00 ['final'] => 2012-04-28 13:30:00 ) ) 将其拆分为: Array ( [0] => Array ( ['type'] => Text Format ['interval'] => 30 ['init'] => 2012-04-30 09:00:00 ['final'] => 2012-04-30 09:30:00 ) [1] => Array ( ['type'] => Text Format ['interval'] => 30 ['init'] => 2012-04-30 09:30:00 ['final'] => 2012-04-30 10:00:00 ) [2] => Array ( ['type'] => Word Format ['interval'] => 12 ['init'] => 2012-04-28 13:00:00 ['final'] => 2012-04-28 13:12:00 ) [3] => Array ( ['type'] => Word Format ['interval'] => 12 ['init'] => 2012-04-28 13:12:00 ['final'] => 2012-04-28 13:24:00 ) ) 这样做的好方法是什么? 解决方法
这可能对你有用……我只与最多20个区间进行比较
$dates = Array ( 0 => Array ( 'type' => "Text Format",'interval' => "30",'init' => "2012-04-30 09:00:00",'final' => "2012-04-30 10:00:00" ),1 => Array ( 'type' => "Word Format",'interval' => 12,'init' => "2012-04-28 13:00:00",'final' => "2012-04-28 13:30:00" ) ); echo "<pre>"; $output = array (); foreach ( $dates as $key => $value ) { makeDates ( $value ['init'],$value ['final'],$value ['interval'],$value ['type'],$output); } var_dump ( $output ); function makeDates($start,$end,$min,$type,&$output) { $start = new DateTime ( $start ); $end = new DateTime ( $end ); $interval = new DateInterval ( 'PT' . $min . 'M' ); for($i = 0; $i < 20; $i ++) { $list = array (); $list ['type'] = $type; $list ['interval'] = $min; $list ['init'] = $start->format ( 'Y-m-d H:i:s' ); $start->add ( $interval ); $list ['final'] = $start->format ( 'Y-m-d H:i:s' ); if ($start == $end) { $output [] = $list; } if ($start >= $end) { break; } $output [] = $list; } return $output; } 产量 array 0 => array 'type' => string 'Text Format' (length=11) 'interval' => string '30' (length=2) 'init' => string '2012-04-30 09:00:00' (length=19) 'final' => string '2012-04-30 09:30:00' (length=19) 1 => array 'type' => string 'Text Format' (length=11) 'interval' => string '30' (length=2) 'init' => string '2012-04-30 09:30:00' (length=19) 'final' => string '2012-04-30 10:00:00' (length=19) 2 => array 'type' => string 'Word Format' (length=11) 'interval' => int 12 'init' => string '2012-04-28 13:00:00' (length=19) 'final' => string '2012-04-28 13:12:00' (length=19) 3 => array 'type' => string 'Word Format' (length=11) 'interval' => int 12 'init' => string '2012-04-28 13:12:00' (length=19) 'final' => string '2012-04-28 13:24:00' (length=19) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |