-1

可能重复:
获取 HH:MM 格式 php 的时间差异

我的时间格式是 d/m/Y - h:ia

示例输出为 21/10/2012 - 03:49pm

我正在使用此代码来计算 $from 和 $to 之间的差异

 $to = strtotime("21/10/2012 - 10:30pm");
 $from = strtotime("22/10/2012 - 8:30am");
 $stat = date("H\h:i\m", abs($to - $from));

但我总是得到不正确的值

对于上面的示例,我得到了 16h:00m 的输出,但它应该是 10h:00m

有没有更有效的方法来做到这一点?

4

2 回答 2

1

这种格式不正确,strtotime无法识别(请参阅第三个注释)我怀疑您的时区是 GMT-8 并且您将始终从这种格式的日期中获得 16 小时。

您必须手动将此日期转换为 php 识别的格式才能进行一些计算

于 2012-10-21T23:21:07.687 回答
1

登出:

if(function_exists('date_default_timezone_set')) date_default_timezone_set('America/New_York');

$from = $_SESSION['loginT'];
$to = date('m/d/Y  h:i A');
$diff_seconds  = strtotime($to) - strtotime($from);
$stat = floor($diff_seconds/3600).'H:'.floor(($diff_seconds%3600)/60).'M';

从登录:

$_SESSION['loginT'] = date('m/d/Y  h:i A');

样本输出:

21/10/2012 - 06:37pm    21/11/2012 - 06:07pm        23H:30M
于 2012-10-22T01:50:08.077 回答