>  기사  >  백엔드 개발  >  지정된 시간의 분을 우아하게 출력하는 방법은 무엇입니까?

지정된 시간의 분을 우아하게 출력하는 방법은 무엇입니까?

WBOY
WBOY원래의
2016-09-03 00:14:14959검색

> 15:07:00

제가 직접 썼는데, 간단하지 않은 느낌이에요


답글 내용:
<code>function get_minutes($dest){
    $start1 =new DateTime();
    $date = $start1 ->format('Y-m-d-H-i-s');
    list($year,$mon,$day,$hour,$min,$sec) = explode('-',$date);
    $start2 = new DateTime($year.'-'.$mon.'-'.$day.' '.$hour.':'.$min);
    $needle = floor($min/10)*10 +$dest;
    $needle = $needle > $min ? $needle : $needle +10;
    $extra = $needle - $min;
    $timestr = '+ '.$extra.' minutes';
    $start2->modify($timestr);
    return $start2->format('Y-m-d H:i:s');
}
echo get_minutes(7);</code>
> 15:07:00제가 직접 썼는데, 간단하지 않은 느낌이에요


먼저 수요를 분석해 보겠습니다. 소요 시간은 7분, 10+7분, 20+7분, 30+7분, 40+7분, 나머지 57분은 다음 노드로 이동합니다. 7 포인트도 10분 간격입니다.
1970년 1월 1일 00:00:00 GMT부터 현재까지의 총 시간(초) 때문입니다.
처음 7분은 420초이고 이후 600초가 추가됩니다.

더해야 할 초 수는 다음과 같습니다. 먼저 현재 시간을 나머지 600으로 나눕니다. 420보다 작으면 420을 사용하여 빼면 됩니다. 더 크면 600+420을 사용하여 뺍니다. 그것.
<code>function get_minutes($dest){
    $start1 =new DateTime();
    $date = $start1 ->format('Y-m-d-H-i-s');
    list($year,$mon,$day,$hour,$min,$sec) = explode('-',$date);
    $start2 = new DateTime($year.'-'.$mon.'-'.$day.' '.$hour.':'.$min);
    $needle = floor($min/10)*10 +$dest;
    $needle = $needle > $min ? $needle : $needle +10;
    $extra = $needle - $min;
    $timestr = '+ '.$extra.' minutes';
    $start2->modify($timestr);
    return $start2->format('Y-m-d H:i:s');
}
echo get_minutes(7);</code>




정말 이상한 요구 사항입니다...

코드가 좀 복잡하다고 생각하지만 실제로는 매우 간단합니다.
<code class="php">$time = time();
echo date('Y-m-d H:i:s',$time);
$last = $time%600;
$last = $last<420?420-$last:1020-$last;
echo '<br />';
echo date('Y-m-d H:i:s',$time+$last);</code>
분의 한 자리 숫자가 7보다 큰지 확인해 보세요. 7보다 크면 한 자리 17을 사용하고, 그렇지 않으면 한 자리 7을 사용합니다. 그러면 7로 끝나는 다음 분과 현재 분의 차이가 계산됩니다. 그러면 이 차이를 추가하면 됩니다.

<code>function get_minutes($dest) {
    if ($dest >= 10) {
        throw new Exception('param error!');
    }
    $mitute = date('i');
    $unit   = $mitute % 10;//个位分钟数
    $offset = $dest - $unit;
    if ($dest <= $unit) {
        $offset += 10;
    }
    return date('Y-m-d H:i:00', strtotime('+' . $offset . ' minutes'));
}

echo get_minutes(7);</code>

예를 들어 설명하자면 편의상 7이 하드코딩되어 있으니 필요에 따라 바꾸시면 됩니다.



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.