猿问

将分钟取整到最近的四分之一小时

我需要将时间四舍五入到最接近的四分之一小时。时间是从MySQL数据库的datetime列中提取的,格式如2010-03-18 10:50:00。


例:


10:50必须是10:45

1:12必须是1:00

3:28必须是3:15

等等

我假设floor()参与其中,但不确定如何去做。


谢谢


一只斗牛犬
浏览 325回答 3
3回答

一只甜甜圈

您的全部功能将是这样的...function roundToQuarterHour($timestring) {    $minutes = date('i', strtotime($timestring));    return $minutes - ($minutes % 15);}

当年话下

$seconds = time();$rounded_seconds = round($seconds / (15 * 60)) * (15 * 60);echo "Original: " . date('H:i', $seconds) . "\n";echo "Rounded: " . date('H:i', $rounded_seconds) . "\n";本示例获取当前时间并将其四舍五入到最接近的四分之一,并打印原始时间和四舍五入时间。PS:如果你想详谈下来替换round()用floor()。

蝴蝶不菲

$now = getdate();$minutes = $now['minutes'] - $now['minutes']%15; //Can add this to go to the nearest 15min interval (up or down)  $rmin  = $now['minutes']%15;  if ($rmin > 7){    $minutes = $now['minutes'] + (15-$rmin);   }else{      $minutes = $now['minutes'] - $rmin;  }$rounded = $now['hours'].":".$minutes;echo $rounded;
随时随地看视频慕课网APP
我要回答