舍入到PHP中最近的可用时隙
发布时间:2020-12-13 14:15:03 所属栏目:PHP教程 来源:网络整理
导读:我一直在努力工作一个小时左右,并且空白了.基本上我需要花费当前时间,增加30分钟,然后向下舍入到接下来的15分钟. 例子: 如果现在是20:00,结果= 20:45 如果它现在是20:10,结果= 20:45 如果它现在是20:16,结果= 21:00 如果现在是20:35,结果= 21:15 我的PHP生
我一直在努力工作一个小时左右,并且空白了.基本上我需要花费当前时间,增加30分钟,然后向下舍入到接下来的15分钟.
例子: >如果现在是20:00,结果= 20:45 我的PHP生疏了,我一直在混淆日期添加和圆形方法试图让它工作,我知道它很简单 – 刚刚用完了想法! 谢谢
我还要添加一个解决方案:
<?php date_default_timezone_set('America/Los_Angeles'); $times = array(); $times[] = strtotime('00:07'); $times[] = strtotime('04:21'); $times[] = strtotime('20:00'); $times[] = strtotime('20:10'); $times[] = strtotime('20:16'); $times[] = strtotime('20:35'); $times[] = strtotime('23:15'); foreach($times as $time) { echo date('m-d-Y H:i',$time) . ' becomes ' . date('m-d-Y H:i:s',roundToNearestInterval($time)) . "<br />n"; } function roundToNearestInterval($timestamp) { $timestamp += 60 * 30; list($m,$d,$y,$h,$i,$s) = explode(' ',date('m d Y H i s',$timestamp)); if ($s != 0) $s = 0; if ($i < 15) { $i = 15; } else if ($i < 30) { $i = 30; } else if ($i < 45) { $i = 45; } else if ($i < 60) { $i = 0; $h++; } return mktime($h,$s,$m,$y); } 产量: 03-01-2012 00:07 becomes 03-01-2012 00:45:00 03-01-2012 04:21 becomes 03-01-2012 05:00:00 03-01-2012 20:00 becomes 03-01-2012 20:45:00 03-01-2012 20:10 becomes 03-01-2012 20:45:00 03-01-2012 20:16 becomes 03-01-2012 21:00:00 03-01-2012 20:35 becomes 03-01-2012 21:15:00 03-01-2012 23:15 becomes 03-02-2012 00:00:00 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |