如何让总分钟数显示为 Xhrs、Xmin?

发布于 2024-12-08 18:52:39 字数 461 浏览 1 评论 0原文

我正在花费总分钟数,并尝试计算总小时数和总小时数。分钟。

如果这样做:

$elapsed = "6476"; // Trying to get 107:56 (107 hours, 56 min)

if ($elapsed > 60) { $format = "i:s"; }
if ($elapsed > 3600) { $format = "H:i:s"; } 

$showdiff = gmdate($format, $elapsed);

问题是它不适用于 23 小时 59 分钟以上的计算。

因此,您可以进行简单的除法:

$elapsed = $elapsed / 60; // total hours

只有这样您才会得到一个分数(在本例中为 107.933333333)。我需要将其保留为小时和分钟。有什么建议吗?

I'm taking a total number of minutes and am trying to calculate total hrs & minutes.

If you do:

$elapsed = "6476"; // Trying to get 107:56 (107 hours, 56 min)

if ($elapsed > 60) { $format = "i:s"; }
if ($elapsed > 3600) { $format = "H:i:s"; } 

$showdiff = gmdate($format, $elapsed);

The problem with this is it doesn't work for calculations above 23hrs 59min.

So, you can do simple division:

$elapsed = $elapsed / 60; // total hours

Only then you will get a fraction (in this case, 107.933333333). I need to keep this as hours and minutes. Any suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

少年亿悲伤 2024-12-15 18:52:39

您应该能够使用除法(如您所述)和模除法来完成您想要的任务。

$hours = floor($elapsed / 60);
$minutes = round(($elapsed / 60) % 60);

echo $hours . "hrs " . $minutes . "min";

You should be able to use division (as you've stated) and modulus division to accomplish what you want.

$hours = floor($elapsed / 60);
$minutes = round(($elapsed / 60) % 60);

echo $hours . "hrs " . $minutes . "min";
往事随风而去 2024-12-15 18:52:39

你可以尝试一下

$elapsed = $elapsed / 60; // total hours (107.933333333)
$parts = explode(".", $elapsed); // split 107.93333 into 2 parts using the . as a separator
$minutes = $parts[1] // $parts[0] is 107, this will be the .9333
$minutes = $minutes * 60 // = 55.99...
$minutes = round($minutes); // round 55.9999 up to 56
$hours = $parts[0];

echo "$hours hrs $minutes mins";

,也许可以写得更好一点,但我的借口是我累了:)

这应该会给你一个想法,让你做你需要做的事情。

you could try

$elapsed = $elapsed / 60; // total hours (107.933333333)
$parts = explode(".", $elapsed); // split 107.93333 into 2 parts using the . as a separator
$minutes = $parts[1] // $parts[0] is 107, this will be the .9333
$minutes = $minutes * 60 // = 55.99...
$minutes = round($minutes); // round 55.9999 up to 56
$hours = $parts[0];

echo "$hours hrs $minutes mins";

probably could be written a bit better but my excuse is I'm tired :)

That should give you an idea though and let you do what you need to.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文