PHP:将unix时间戳范围拆分为5个块

时间:2014-06-27 08:08:13

标签: php pchart

我有一个要求,我需要从Unix时间戳或PHP时间戳范围中提取5个点。

例如, 从2014-06-26 07:53:26到2014-06-27 07:52:46。

我需要以精确或近似的间隔从这两个日期中得到五分,才能使用pChart图表。

目前我的代码是

$diff = $mintime->diff($maxtime);
$range = max($timestamps) - min($timestamps);
$cnt = count($timestamps);
$temp = ceil($range * (20/100));

for($i=0;$i<$cnt;$i++)
{
if($i%($cnt/5) == 0)
$point[$i] = gmdate("Y-m-d H:i:s",min($timestamps) + $temp * ($i+1));
else
$point[$i] = null;
}

但我的代码会返回不稳定的值。我知道问题在于temp变量。帮我解决这个问题。

由于

2 个答案:

答案 0 :(得分:2)

试试这个:

$from = '2014-06-26 07:53:26';
$to = '2014-06-27 07:52:46';

$diff_stamp = strtotime($to) - strtotime($from);
$range = range(strtotime($from), strtotime($to), $diff_stamp/4);

这里,$range是一个时间戳数组。要将每个转换回日期,您可以使用array_map

$range = array_map(function($a){return date('Y-m-d H:i:s', $a);}, $range);

See Demo Updated


资源: strtotime()range()array_map()

答案 1 :(得分:0)

$splitter=($timestamp1-$timestamp2);
$timestamp_between=array();
for($i=0;$i<5;$i++) $timestamp_between[]=$timestamp1+($i*$splitter);
print_r($timestamp_between);