获取时间间隔
问题描述:
我有两个时间戳输入一个是当前的时间,另一个是未来获取时间间隔
即
未来时间:2010-8-17 23:00 当前时间:2010-8- 15 11:00
我想设置通知系统,它将显示上述日期之间的时间间隔。即
前15分钟 前30分钟2小时前 前1天
3小时之前 .... .... .... 我不是之前小时知道如何实现在PHP这个任务,不知道这里的任何一个可以建议我如何实现这一任务
答
$t1 = getdate($current_date);
$t2 = getdate($future_date);
return $t2[0]-$t1[0];
这会给你两个日期之间的差值,MEAS在几秒钟内。
答
获取两个日期之间的差值,然后用date_parse
// $difference = difference in times
print_r(date_parse($difference));
,这将导致沿
Array ( [year] => 2006 [month] => 12 [day] => 12 [hour] => 10 [minute] => 0 [second] => 0 [fraction] => 0.5 [warning_count] => 0 [warnings] => Array() [error_count] => 0 [errors] => Array() [is_localtime] => )
线的东西更多信息
答
见http://php.net/manual/en/function.date-parse.php如何使用DateTime类。
<?php
$datetime1 = new DateTime('2010-8-15 11:00');
$datetime2 = new DateTime('2010-8-17 23:00');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%d days, %H hours');
?>
输出:
+2 days, 12 hours
答
这是我做过什么,当我需要同样的事情。
您可以通过获取一周,一个月或一年中的秒数来轻松扩展它。
function getTimeInterval($ts1, $ts2) { $interval = (int)$ts2 - (int)$ts1; if ($interval < 0) { return false; } else { $days = floor($interval/86400); // seconds in one day $interval = $interval % 86400; $hours = floor($interval/3600); $interval = $interval % 3600; $minutes = floor($interval/60); $interval = $interval % 60; $seconds = $interval; } return array( 'days' => $days, 'hours' => $hours, 'minutes' => $minutes, 'seconds' => $seconds ); }
不确定您的意思与最后一句话。 'date_parse'以秒为单位解析日期而不是时间间隔。 – Artefacto 2010-08-16 00:41:13
@艺术品:删除。 'date_parse' *将*接受一个unix时间戳,如果你在其前加'@',但你必须减去'parse_date(@ 0)'使输出成为两个给定日期之间的差值。 – Borealid 2010-08-16 00:51:09
我还没有看到如何帮助。也许你可以举一个例子说明这个策略如何导致OP想要的东西。 – Artefacto 2010-08-16 00:53:04