최신 게시글에서는 작성일이 '시간 전'으로 표시가 안 됩니다 채택완료
안녕하십니까? 좋은 하루 되십시오~
해결이 되지 않아서 재차 질문을 올립니다. 죄송~~
1. 일반 게시판에서는 작성일을 '18:00' → '1시간전' 으로 표시하는 것이 잘 됩니다.
1) lib/common.lib.php > get_list 함수 내에 필요한 코드를 삽입하고
2) skin/board/basic/list.skin.php에서 게시판 리스트에 날짜를 표기해주는 부분에 $list['datetime'] 이나 $list['datetime2']를 찾아 → $list['datetime3'] 으로 대체해 주면 됩니다.
2. 그런데 제가 적용을 잘 못해서 그런지 최신 게시글 리스트에서는 '18:00' → '1시간전' 으로 표시하는 것을 헤메고 있습니다.
1) bbs/new.php 에서 위 1.항의 1)처럼 필요한 코드를 삽입하고
2) skin/new/basic/new.skin에서 게시판 리스트에 날짜를 표기해주는 부분에 $list['datetime2']를 찾아 → $list['datetime3'] 으로 대체해주었는데... 적용이 안 되네요...ㅜㅜ
여기저기 수정하다 결국 포기하고 질문을 올립니다.
3. 구조를 보니까
1) list.skin.php 에는 다음처럼 되어 있고
2) new.skin 에는 다음처럼 되어 있습니다.
위의 차이 때문에 안 되는 것 같습니다.
4. 그러면 어디를 어떻게 수정해야 합니까?
감사합니다.
답변 3개
한번 해봤는데 이렇게 해도 나오네요. row2 인 것 같더라고요.
$diff = time() - strtotime($row2['wr_datetime']);
if( $diff < 10 ) $datetime3 = "방금";
else if( $diff < 30 ) $datetime3 = "조금 전";
else if( $diff < 60 ) $datetime3 = "{$diff}초 전";
else if( 600 > $diff && $diff > 60 ) $datetime3 = "".round($diff/60). "분 전";
else if( 3600 > $diff && $diff > 600 ) $datetime3 = "아까";
else if( 86400 > $diff && $diff > 3600 ) $datetime3 = "".round($diff/3600). "시간 전";
else $datetime3 = substr($row2['wr_datetime'],5,5);
이렇게 전부 수정하시고.. 좀 더아래쪽에 보면 이런 부분이 있습니다. 빨간색 부분 추가해보세요.
(여기 추가 필요없이 균이님 말씀처럼 위 내용에 $list[$i]['datetime3'] 를 직접 넣어도 됩니다.)
$list[$i]['datetime'] = $datetime;
$list[$i]['datetime2'] = $datetime2;
$list[$i]['datetime3'] = $datetime3;
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
헐..잘못 되엇습니다
$diff = time() - strtotime($list['wr_datetime']); --> $diff = time() - strtotime($row2['wr_datetime']);
그 아래의 $list['datetime3'] 모두 --> $list[$i]['datetime3']
답변에 대한 댓글 1개
해결하였습니다.
'균이'님 방법대로 했더니 되긴하는데...24시간 이후부터는 작성일이 나타나지 않습니다.
'작은별'님과 같은 방법인 것 같은데...
'작은별'님 방법대로 했더니 잘 되었습니다.
좋은 밤 되십시오~
PS : 저 번에 '균이'님 것 채택하였으므로 오늘은 아래 답변 주신 '작은별'님 것 채택해도 되겠지요~ 죄송~ ^^)
댓글을 작성하려면 로그인이 필요합니다.
오잉? 아직인가요?
지난번 답변처럼 수정해서 안되는 코드를 올려야 안되는 이유를 알 수 있겟죠
지난번 답변외의 다른 방법은 없을 걸요?(스킨에서 하더라도 같은 방법이니)
답변에 대한 댓글 1개
// 당일인 경우 시간으로 표시함
$datetime = substr($row3['wr_datetime'],0,10);
$datetime2 = $row3['wr_datetime'];
여기 아래에다 다음 코드를 넣었습니다.
$diff = time() - strtotime($list['wr_datetime']);
if( $diff < 10 ) $list['datetime3'] = "<span style=\"color:#000000;\">방금</span>";
else if( $diff < 30 ) $list['datetime3'] = "<span style=\"color:#000000;\">조금 전</span>";
else if( $diff < 60 ) $list['datetime3'] = "<span style=\"color:#000000;\">{$diff}초 전</span>";
else if( 600 > $diff && $diff > 60 ) $list['datetime3'] = "<span style=\"color:#000000;\">".round($diff/60). "분 전</span>";
else if( 3600 > $diff && $diff > 600 ) $list['datetime3'] = "<span style=\"color:#000000;\">아까</span>";
else if( 86400 > $diff && $diff > 3600 ) $list['datetime3'] = "<span style=\"color:#000000;\">".round($diff/3600). "시간 전</span>";
else $list['datetime3'] = substr($list['wr_datetime'],5,5);
그리고
theme/community/skin/new/basic/new.skin.php에서
<td class="td_date"><?php echo $list[$i]['datetime2'] ?></td>를
<td class="td_date"><?php echo $list[$i]['datetime3] ?></td>으로 변경하였습니다.
어디가 잘 못 되었을까요?
datetime3으로 하니까 게시판은 큰 문제가 없는데...작성일이 안 나옵니다.
다른 곳 new.skin.php을 수정하면 아무런 변화가 없는 것을 보니
theme/community/skin/new/basic/new.skin.php가 관련이 있는 것 같은데요~
list.skin.php처럼
<th scope="col"><?php echo subject_sort_link('wr_datetime3', $qstr2, 1) ?>작성일</a></th>
이것이 없어서일까요?
알려주십시오~
감사합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
해결하였습니다.
'작은별'님 방법대로 했더니 잘 해결이 되었습니다.
좋은 밤 되십시오~
PS : 저 번에 '균이'님 것 채택하였고 오늘은 '작은별'님 것 채택했습니다.