PHP | 시간 함수, 워드프레스 the_time() 함수

|

개요

프로그래밍의 꽃인 시간 출력 기능입니다. 겉으로만 보면 어려워 보이지만 자주 사용하는 것만 기억하면 나중에 활용할 때 복붙함으로써 편하게 활용할 수 있게 됩니다.

대신 시간 함수는 포맷을 이해할 필요가 있습니다. 시간(Time)은 포맷에 맞추어 활용해야 하는 경우가 많은데, 이 또한 자주 사용하는게 정해져 있으니 필요한 것만 복붙해 가시면 됩니다

PHP 포맷 정리

  • format('c') : 2022-05-10T22:00:00+05:30 – time 메타에 사용하기 적합
  • format('y년 m월 d일') : 22년 05월 10일 – 일반적으로 사용
  • format('Y년 m월 d일') : 2022년 05월 10일 – 일반적으로 사용
  • format('Y/m/d H:i') : 2022/05/10 22:00 – 일반적으로 사용

자주 사용할만한 포맷을 가져왔습니다. 재밌는 점은 년 월 일 등 텍스트를 직접 채워넣을 수 있기 때문에 활용이 조금 더 편리합니다. 약간 엑셀 함수를 많이 사용하신 분들이라면 이러한 포맷이 익숙할 것이라는 생각입니다.

image 27
PHP | 시간 함수, 워드프레스 the_time() 함수 2

‘c’ 포맷은 메타 태그에서 공개시간, 수정 시간을 노출시키는 데 사용합니다.

워드프레스 함수 정리

// 포스트 발행 일자 출력
the_time('c'); // time 메타 적용
echo get_the_date(); // 관리자 설정의 날짜 표시 형식에 맞추어 표기

the_timeget_the_date 함수는 포스트의 발행 시작 시간을 출력하는 함수입니다.

// 포스트 마지막 수정시간 출력
echo get_the_modified_time('c'); // time 메타 적용
echo get_the_modified_time('y년 m월 d일'); // 22년 05월 10일

get_the_modified_time 함수는 해당 게시물마지막 수정시간을 검색해줍니다. 글의 발행 시간만 넣으면 페이지가 언제 수정되는 지 모르기 때문에 수정시간을 넣음으로써 최근에 수정된 글이라는 것을 알리는 효과를 가지고 있습니다

time 포맷 정리 표

년 (Year)Y
y
2022
22
월 (Month)M
m
F
Jan ~ Dec
01 ~ 12
January ~ December
일 (Day)D
d
월 ~ 일 (Mon – Sun)
01 ~ 31
시 (Hour)H
h
A
00 ~ 23
01 ~ 12
오전 ~ 오후 ( AM, PM )
분 (Minute)i01 ~ 59
초 (Second)s01 ~ 59

PHP 시간 차 기록하기

$time1 = DateTime::createFromFormat( 'd/m/Y H:i', '05/05/2022 10:00' );
$time2 = DateTime::createFromFormat( 'd/m/Y H:i', '06/05/2022 23:00' );

$chai = $time1->diff( $time2 );

$hours_ago = $diff->h + ($diff->days * 24);
$days_ago = $diff->days;
$months_ago = $diff->m + ($diff->y * 12);

echo "{$hours_ago}시간 전";
echo "{$days_ago}일 전"; 
echo "{$months_ago}달 전";

diff 함수를 이용하면 위와같이 적용할 수 있습니다. 이 기능을 활용하면 소셜 서비스를 개발할 때 몇분 전에 글이 올라왔는지 파악할 수 있습니다.

PHP 시간 조건문
<?php
$date1 = new DateTime("now");
$date2 = new DateTime("tomorrow");

var_dump($date1 == $date2);
var_dump($date1 < $date2);
var_dump($date1 > $date2);
?>

조건문도 만들 수 있는데요, 어떤 날짜가 더 큰지를 파악하여 boolean, if 등을 활용할 수 있습니다.

참조

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

클릭하여 복사