计算按 day/hour 分组的两个日期之间的分钟数
Count minutes between two dates grouping by day/hour
我有以下数组:
$periods = array(
['begin' => '2013-08-14 10:00:00', 'end' => '2013-08-14 11:30:00'],
['begin' => '2013-08-14 11:40:00', 'end' => '2013-08-14 11:45:00'],
['begin' => '2013-08-14 11:45:00', 'end' => '2013-08-14 11:52:00'],
['begin' => '2013-08-08 07:00:00', 'end' => '2013-08-08 09:25:00'],
['begin' => '2013-08-09 23:50:00', 'end' => '2013-08-10 00:25:00']
);
我想要的是按 day/hour 计算每个周期分组之间的分钟数,得到如下结果:
date minutes
2013-08-14 10:00:00 : 60
2013-08-14 11:00:00 : 42
2013-08-08 07:00:00 : 60
2013-08-08 08:00:00 : 60
2013-08-08 09:00:00 : 25
2013-08-09 23:00:00 : 10
2013-08-10 00:00:00 : 25
好的,我明白了。
数组:
$periods = array(
['begin' => '2013-08-14 10:00:00', 'end' => '2013-08-14 11:30:00'],
['begin' => '2013-08-14 11:40:00', 'end' => '2013-08-14 11:45:00'],
['begin' => '2013-08-14 11:45:00', 'end' => '2013-08-14 11:52:00'],
['begin' => '2013-08-08 07:00:00', 'end' => '2013-08-08 09:25:00'],
['begin' => '2013-08-09 23:50:00', 'end' => '2013-08-10 00:25:00']
);
代码:
$period_difference = array();
foreach ($intervals as $interval) {
$dateTimes = new DatePeriod(
new DateTime($interval['begin']),
new DateInterval('PT1M'),
new DateTime($interval['end'])
);
foreach ($dateTimes as $dt) {
$period_difference[$dt->format('Y-m-d H:00:00')] = isset($period_difference[$dt->format('Y-m-d H:00:00')]) ? $period_difference[$dt->format('Y-m-d H:00:00')]+1 : 1;
}
}
要在 phpio.net 上进行测试:http://phpio.net/s/idl
我有以下数组:
$periods = array(
['begin' => '2013-08-14 10:00:00', 'end' => '2013-08-14 11:30:00'],
['begin' => '2013-08-14 11:40:00', 'end' => '2013-08-14 11:45:00'],
['begin' => '2013-08-14 11:45:00', 'end' => '2013-08-14 11:52:00'],
['begin' => '2013-08-08 07:00:00', 'end' => '2013-08-08 09:25:00'],
['begin' => '2013-08-09 23:50:00', 'end' => '2013-08-10 00:25:00']
);
我想要的是按 day/hour 计算每个周期分组之间的分钟数,得到如下结果:
date minutes
2013-08-14 10:00:00 : 60
2013-08-14 11:00:00 : 42
2013-08-08 07:00:00 : 60
2013-08-08 08:00:00 : 60
2013-08-08 09:00:00 : 25
2013-08-09 23:00:00 : 10
2013-08-10 00:00:00 : 25
好的,我明白了。
数组:
$periods = array(
['begin' => '2013-08-14 10:00:00', 'end' => '2013-08-14 11:30:00'],
['begin' => '2013-08-14 11:40:00', 'end' => '2013-08-14 11:45:00'],
['begin' => '2013-08-14 11:45:00', 'end' => '2013-08-14 11:52:00'],
['begin' => '2013-08-08 07:00:00', 'end' => '2013-08-08 09:25:00'],
['begin' => '2013-08-09 23:50:00', 'end' => '2013-08-10 00:25:00']
);
代码:
$period_difference = array();
foreach ($intervals as $interval) {
$dateTimes = new DatePeriod(
new DateTime($interval['begin']),
new DateInterval('PT1M'),
new DateTime($interval['end'])
);
foreach ($dateTimes as $dt) {
$period_difference[$dt->format('Y-m-d H:00:00')] = isset($period_difference[$dt->format('Y-m-d H:00:00')]) ? $period_difference[$dt->format('Y-m-d H:00:00')]+1 : 1;
}
}
要在 phpio.net 上进行测试:http://phpio.net/s/idl