[이윰] date 시간 형식으로 출력(~전) 올바르게 해결하기

페이지 정보

shadow2fox 55 2 2 2023.03.10 22:01

평점

  • - 평점 : 5점 (2명 참여)

본문

📝 date 시간 형식으로 출력(~전) 올바르게 해결하기

템플릿언더바를 이용하는 과거의 이윰빌더와 순수 PHP를 지향하는 현재의 이윰빌더의 eyoom.class.php에 정의된 date_time 함수에 오류(시간 계산 방법이 맞지 않음)가 있어 그 문제를 바로 잡아 보도록 하자.

그누보드5/eyoom/classes/eyoom.class.php를 열어 public function date_time($format, $date) {를 검색한다.

수정 전


    public function date_time($format, $date) {
        $time = strtotime($date);
        $time_gap = time() - $time;
        if ($time_gap < 60) return $time_gap.'초전';
        else if ($time_gap < 3600) return round($time_gap/60).'분전';
        else if ($time_gap < 86400) {
            $minute = round(($time_gap%3600)/60);
            return round($time_gap/3600).'시간 '.$minute.'분전';
        }
        else return date($format,$time);
    }

수정 후


    public function date_time($format, $date) {
        $time = strtotime($date);
        $time_gap = time() - $time;
        if ($time_gap < 60) return $time_gap.'초전';
        else if ($time_gap < 3600) return floor($time_gap/60).'분전';
        else if ($time_gap < 86400) {
            $minute = floor(($time_gap%3600)/60);
            return floor($time_gap/3600).'시간 '.$minute.'분전';
        }
        else return date($format,$time);
    }

시간을 계산하기 위해 소수점 처리 방식을 반올림하는 함수 round()가 아니라 버리는 함수 floor()를 이용해야 한다. 

추천인 2
  • 내사랑
  • 하늘구장
10
shadow2fox - 회원등급 : 숲/Level 138 - 포인트 : 2,423,640
레벨 138
경험치 2,855,165

Progress Bar 47%

- 가입일 : 2015-03-10 12:21:44
- 서명 : 인간에게 가장 큰 선물은 자기 자신에게 기회를 주는 것이다. - 크리스 가드너, Chris Gardner -
- 자기소개 : There's never a shortcut to happiness.

댓글2

내사랑님의 댓글

내사랑 2023.03.10 23:56

전혀 몰랐던 1인 ㅎㅎ
이윰에 제보해야 하나 싶네요

하늘구장님의 댓글

하늘구장 2023.03.10 23:21

몇 시간 몇 분 전 일 때 안 맞는 경우가 있어 제 판단력에 문제가 있구나 싶었는데
소중한 팁 고맙습니다

축하합니다. 첫 댓글로 9경험치를 획득하였습니다.