【问题标题】:Sum of hours and minutes from date or milliseconds从日期或毫秒开始的小时和分钟的总和
【发布时间】:2013-12-30 08:18:40
【问题描述】:

假设我们有这样的毫秒时间,我们希望得到 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

如果我得到这 3 个的总和:

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;

回声 $date = 6:30

echo $milliseconds = 1388377800000 等于 2013 年 12 月 30 日星期一 06:30:00 GMT+0200

如果我得到的小时数大于 24 或分钟数大于 60,我必须将其转换为正确的小时和分钟。

这是正确的做法还是有其他简单的方法?

【问题讨论】:

  • 您使用的是 32 位还是 64 位系统?
  • strtotime() 可能是更好的选择
  • 64系统,不过我觉得没关系

标签: php


【解决方案1】:

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

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

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

【讨论】:

  • 试用日期("H:i", strtotime("00:00 +" .$hours . "hours + " . $minutes . "minutes") 它有效,但如果我有总共超过 24 小时,然后时间从 0 开始。但我可以用另一种方式解决这个问题。感谢您的回答。
  • 类似stackoverflow.com/questions/7474762/… 的内容可能会对您有所帮助。基本上,只需将时间分成几天和几小时......等等。
猜你喜欢
  • 2012-06-08
  • 2018-12-25
  • 2013-07-04
  • 1970-01-01
  • 2015-08-21
  • 2013-01-12
  • 1970-01-01
  • 1970-01-01
  • 2017-06-10
相关资源
最近更新 更多