从日期或毫秒开始的小时和分钟总和

时间:2013-12-30 00:10:35

标签: php

假设我们有这样的时间,以毫秒为单位,我们希望获得3小时的总和(02:00 + 03:00 + 01:30 = 06:30)。

1388361603000 equals with Mon Dec 30 2013 02:00:03 GMT+0200
1388365202000 equals with Mon Dec 30 2013 03:00:02 GMT+0200
1388359845000 equals with Mon Dec 30 2013 01:30:45 GMT+0200

如果我得到了那些我得到的总和:

4165086650000 equals with Tue Dec 27 2101 02:30:50 GMT+0200

如果我得到的总和除以1000(得到秒数),结果如下:

4165086650 equals with Wed Feb 18 1970 06:58:06 GMT+0200

也是这样尝试并没有奏效:

$time1 = date("H:i", 1388361603000 / 1000);
$time2 = date("H:i", 1388365202000 / 1000);
$time3 = date("H:i", 1388359845000 / 1000);
$total_time = $time1 + $time2 + $time3;

结果是6,如果我删除:在H和i之间,结果将是630(仍然不好)。

我所做的和工作的是:

$hours1 = date("H", 1388361603000 / 1000);
$minutes1 = date("i", 1388361603000 / 1000);
$hours2 = date("H", 1388365202000 / 1000);
$minutes2 = date("i", 1388365202000 / 1000);
$hours3 = date("H", 1388359845000 / 1000);
$minutes3 = date("i", 1388359845000 / 1000);

$date = ($hours1 + $hours2 + $hours3) . ":" . ($minutes1 + $minutes2 + $minutes3);
$milliseconds = strtotime($date) * 1000;

echo $ date = 6:30

echo $ milliseconds = 1388377800000,相当于2013年12月30日星期三06:30:00 GMT + 0200

如果我得到更大的时间,那么24或分钟大于60,我必须在适当的时间和分钟转换它。

这是正确的做法还是另一种简单方法?

1 个答案:

答案 0 :(得分:2)

我能想象到的最简单的方式

echo "Time is: ".date("Y-m-d H:i:s", strtotime("now +3 hours"));

您还可以将strtotime()作为第二个参数提供给UNIX时间戳。