以小时和分钟计的时间差(以小时和分钟计).HH:MM格式为d / m / Y - h:ia

时间:2012-10-21 22:56:04

标签: php datetime datediff

  

可能重复:
  get difference in time in HH:MM format php

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

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

我正在使用此代码计算$ 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

有更有效和更有效的方法吗?

2 个答案:

答案 0 :(得分:1)

此格式不正确且strtotime无法识别(请参阅第三条注释)我怀疑您的时区为GMT-8,并且您将始终以此格式从日期开始16小时。

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

答案 1 :(得分:1)

注销:

  

如果(function_exists( 'date_default_timezone_set'))   date_default_timezone_set( '美国/纽约');

$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