如何使用PHP日期/时间获取最后/前半个小时标记。
所以15:31到16:29的时间应该是15:30,因为这是最后半小时的标记。
我希望能够动态更改分钟数。 因此,如果我将分钟设置为15,它将获得最后/上一个:15分钟的分数 所以15:16到16:14将返回15:15
这就是我所拥有的,但我无法让它发挥作用......
function newtime($time, $offset) {
$prev = $time - $offset;
$newtime = ($offset > 900) ? ($prev - 1800) : ($prev);
return $newtime;
}
$hours = date("H", time());
$minutes = date("m", time());
echo 'Current date: ' . date("Y-m-d H:i:s", time()) . '<br/>';
$time = strtotime("2013-01-23 15:35:00");
echo 'time: ' . date("Y-m-d H:i:s", $time) . '<br/>';
$offset = ($time % 1800);
echo 'prev: ' . $offset . '<br/>';
$newtime = newtime($time, $offset);
echo date("Y-m-d H:i:s", $newtime) . '<br/><br/>';
这真的很难,我无法绕过它。
非常感谢任何帮助!
答案 0 :(得分:3)
尝试这样的事情:
<?
function newtime($time,$minute=30){
$time=strtotime($time);
$m=date("i",$time)*1;
$h=date("H",$time)*1;
if($m<$minute){
$h=$h-1;
}
return date("H:i",strtotime($h.":".$minute));
}
print newtime("15:31");
//OUTPUT: 15:30
print newtime("16:29");
//OUTPUT: 15:30
print newtime("15:16",15);
//OUTPUT: 15:15
print newtime("16:14",15);
//OUTPUT: 15:15
?>
答案 1 :(得分:2)
function newtime ($time, $offset)
{
// First, calculate the offset in seconds:
$offset_sec = $offset * 60;
// Next, fetch unix timestamp from $time
$unix_time = strtotime($time);
// Then calculate the modulo
$modulo = $unix_time % $offset_sec;
// Calculate latest timestamp
$last_time = $unix_time - $modulo;
// Display latest timestamp
return date('H:i',$last_time);
}