php:将分钟四舍五入到最近的一刻钟,然后执行更多操作

发布于 2024-11-19 02:26:14 字数 267 浏览 3 评论 0原文

最初的问题是这样的: 取分钟数->变成一刻钟-> 1 刻钟为 1 个单位 ->输出单位

今天我一整天都在拼凑一个页面,几分钟前我的大脑就停止了工作,我就是不知道如何输出单位数量。我知道在此网站上发布问题会有帮助。

因此,用户输入分钟数(不是小时和分钟,只是分钟),站点需要输出单位数。一个单位是一刻钟。分钟始终四舍五入到最接近的一刻钟。我知道我会以某种方式使用 ceil ,可能还会使用(?) number_format ,但我就是无法让它正确显示。任何帮助表示赞赏。

The initial problem is this:
Take the amount of minutes -> turn into quarter hours -> 1 quarter hour is 1 unit -> output units

I've been putting a page together all day today and my brain just stopped working a couple of minutes ago and I just can't wrap my head around how to output the amount of units. I knew posting the problem on this site would help.

So the user puts in the amount of minutes (not hours and minutes, just minutes) and the site needs to output the amount of units. A unit is a quarter hour. The minutes are always rounded up to the nearest quarter hour. I know I'll use ceil in some sort of way and probably(?) number_format, but I just can't get it to come out correctly. Any help is appreciated.

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

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

发布评论

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

评论(4

转角预定愛 2024-11-26 02:26:14

尝试:

$units = ceil($minutes / 15) 

Try:

$units = ceil($minutes / 15) 
二智少女猫性小仙女 2024-11-26 02:26:14

我对此的看法:

return (round($mins / 15) * 15) % 60;

产生:

for($i=0; $i<60; $i++) {
    echo $i . ' -> ' . roundQuarter($i) . '<br/>';
}

function roundQuarter($minutes) {
    return (round($minutes / 15) * 15) % 60;
}

0 -> 0
1 -> 0
2 -> 0
3 -> 0
4 -> 0
5 -> 0
6 -> 0
7 -> 0
8 -> 15
9 -> 15
10 -> 15
11 -> 15
12 -> 15
13 -> 15
14 -> 15
15 -> 15
16 -> 15
17 -> 15
18 -> 15
19 -> 15
20 -> 15
21 -> 15
22 -> 15
23 -> 30
24 -> 30
25 -> 30
26 -> 30
27 -> 30
28 -> 30
29 -> 30
30 -> 30
31 -> 30
32 -> 30
33 -> 30
34 -> 30
35 -> 30
36 -> 30
37 -> 30
38 -> 45
39 -> 45
40 -> 45
41 -> 45
42 -> 45
43 -> 45
44 -> 45
45 -> 45
46 -> 45
47 -> 45
48 -> 45
49 -> 45
50 -> 45
51 -> 45
52 -> 45
53 -> 0
54 -> 0
55 -> 0
56 -> 0
57 -> 0
58 -> 0
59 -> 0

My take on this:

return (round($minutes / 15) * 15) % 60;

Produces:

for($i=0; $i<60; $i++) {
    echo $i . ' -> ' . roundQuarter($i) . '<br/>';
}

function roundQuarter($minutes) {
    return (round($minutes / 15) * 15) % 60;
}

0 -> 0
1 -> 0
2 -> 0
3 -> 0
4 -> 0
5 -> 0
6 -> 0
7 -> 0
8 -> 15
9 -> 15
10 -> 15
11 -> 15
12 -> 15
13 -> 15
14 -> 15
15 -> 15
16 -> 15
17 -> 15
18 -> 15
19 -> 15
20 -> 15
21 -> 15
22 -> 15
23 -> 30
24 -> 30
25 -> 30
26 -> 30
27 -> 30
28 -> 30
29 -> 30
30 -> 30
31 -> 30
32 -> 30
33 -> 30
34 -> 30
35 -> 30
36 -> 30
37 -> 30
38 -> 45
39 -> 45
40 -> 45
41 -> 45
42 -> 45
43 -> 45
44 -> 45
45 -> 45
46 -> 45
47 -> 45
48 -> 45
49 -> 45
50 -> 45
51 -> 45
52 -> 45
53 -> 0
54 -> 0
55 -> 0
56 -> 0
57 -> 0
58 -> 0
59 -> 0
因为看清所以看轻 2024-11-26 02:26:14
$rounded = floor($minutes / 15);

1 minute / 15 = 0.0666 -> 0
14 minute / 15 = 0.9333 -> 0;
15 / 15 = 1 -> 1;

对于 15 分钟的时间范围,这将为您提供 0->3。如果您想要 1-4,请改用 ceil() 。

$rounded = floor($minutes / 15);

1 minute / 15 = 0.0666 -> 0
14 minute / 15 = 0.9333 -> 0;
15 / 15 = 1 -> 1;

This'll give you 0->3 for the range of 15 minute periods. If you want 1-4, then use ceil() instead.

就像说晚安 2024-11-26 02:26:14

这还不行吗?

$numberOfMinutes = 135;

$numberOfFifteenMinuteUnits = round($numberOfMinutes / 15);

echo $numberOfFifteenMinuteUnits;

Does this not do the trick?

$numberOfMinutes = 135;

$numberOfFifteenMinuteUnits = round($numberOfMinutes / 15);

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