将格式化时间值舍入到最接近的半小时

发布于 2024-11-09 16:42:53 字数 146 浏览 0 评论 0原文

我需要 0:30 到 0:59 向下舍入为 0:30。
我需要从 0:00 到 0:29 舍入为 0:30。

示例:08:56 将向下舍入为 08:30,其中 09:00 和 09:01 需要向上舍入为 09:30。
秒应省略或四舍五入为 :00

I need 0:30 through 0:59 to round down to 0:30.
I need 0:00 through 0:29 to round up to 0:30.

Example: 08:56 will round down to 08:30 where 09:00 and 09:01 will need to round up to 09:30.
Seconds should be omitted or rounded to :00

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

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

发布评论

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

评论(3

匿名的好友 2024-11-16 16:42:53

为什么不这样做:

$hour = date('H');
$minute = (date('i')>30)?'30':'00';
echo "$hour:$minute";

演示

更新
我刚刚意识到您要求所有时间四舍五入为 :30

$hour = date('H');
$minute = '30'; //always 30
echo "$hour:$minute";

Why don't you just do this:

$hour = date('H');
$minute = (date('i')>30)?'30':'00';
echo "$hour:$minute";

DEMO

UPDATE
I just realized that you asked all time to be rounded to :30:

$hour = date('H');
$minute = '30'; //always 30
echo "$hour:$minute";
鼻尖触碰 2024-11-16 16:42:53

我对真实回合的解决方案是以下选项:

//Round Down
date('H:i',floor(time() / (15 * 60)) * (15 * 60))

//Round Up/Down
date('H:i',round(time() / (15 * 60)) * (15 * 60))

//Round Up
date('H:i',ceil(time() / (15 * 60)) * (15 * 60))

time() 替换为您需要的时间,将 15 替换为您希望接近的分钟数。

例子:

$currentTime = time();
echo('Current Time: ' . date('H:i',$currentTime) . '<br>Rounded Up 15 Minutes time: ' . date('H:i',ceil($currentTime / (15 * 60)) * (15 * 60)));

My solution to a real round are the next options:

//Round Down
date('H:i',floor(time() / (15 * 60)) * (15 * 60))

//Round Up/Down
date('H:i',round(time() / (15 * 60)) * (15 * 60))

//Round Up
date('H:i',ceil(time() / (15 * 60)) * (15 * 60))

Replace time() with the time you need, and 15 with the minutes you like to round near to.

Example:

$currentTime = time();
echo('Current Time: ' . date('H:i',$currentTime) . '<br>Rounded Up 15 Minutes time: ' . date('H:i',ceil($currentTime / (15 * 60)) * (15 * 60)));
飘落散花 2024-11-16 16:42:53
you have to do: 

$hour = date('H'); 
$minute = date('i');
$minute = ($minute < 30 || $minute > 30) ? 30 : $minute;
you have to do: 

$hour = date('H'); 
$minute = date('i');
$minute = ($minute < 30 || $minute > 30) ? 30 : $minute;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文