Skip to Content
Go Back
안형우

안녕하세요. 14년차 풀스택 웹개발자 안형우입니다. 이 블로그에서는 WordPress, PHP, CSS, 사용성, 리눅스 서버 등 풀스택 웹개발에서 마주하는 다양한 문제 상황과 해결책, 필요한 개념들을 다룹니다. 👉 소개


작업물

📌 워드프레스, 답답한 빌더와 플러그인 대신 시원하게 커스터마징하기(강의) 2023-01-15
📌 아무도 말하지 않는 PHP의 좋은 점 2018-10-13
📌 유지보수하기 쉬운 CSS 전략(슬라이드) 2016-12-20
📌 워드프레스 테마에서 템플릿 파일 매칭 순서 2013-05-12

[PHP] 요일을 쉽게 출력하기

timestamp(1970년 1월 1일부터 지금까지를 초로 센 숫자)를 받아서 사람이 읽는 날짜로 바꿀 때 많이 쓰는 것은 date()다. 예시는 아래와 같다.

echo date('Y-m-d', $timestamp);

그러나 date()는 요일을 영어로만 출력해 준다. 그래서 요일 넘버를 받아 처리하곤 하는데, PHP 기본 함수중에 한글로 요일을 출력해 주는 함수가 있다(물론 로케일이 한글로 설정돼 있어야 할 것이다).

strftime()이 바로 그 함수다. 자세한 내용은 링크의 공식 문서를 참고하고, 예시 하나만 넣는다.

echo strftime('%h %e일(%a)', $timestamp);
echo strftime('%Y-%m-%d %H:%M:%S', $timestamp);
echo strftime('%F %T', $timestamp);

위처럼 쓰면 ‘10월 3일(월)’ 하는 식으로 출력된다. strftime에서 사용하는 문자열 포맷이 다른 프로그래밍 언어에서도 더 널리 사용되는 형식이라고 하니 앞으론 이걸 쓰는 게 더 낫겠다.

한편, 날짜 문자열을 timestamp로 변경할 때는 strtotime()을 사용하면 편하다. (strtotime('2014-01-02 15:30:11'))

운영체제와 로케일 세팅의 영향을 받는다

만약 한글 로케일이 운영체제에 설치돼 있지 않다면 제대로 작동하지 않는다(영어로 나온다). 우분투 같은 데비안 계열이라면 다음 명령어로 설치하고 세팅한다.

sudo apt-get install language-pack-ko
sudo dpkg-reconfigure locales

운영체제 기본 로케일을 변경하면 해당 로케일에 따라 월과 요일이 출력될 테지만, 그렇지 않다면 PHP에서 로케일을 세팅한다. 다음 코드를 PHP에서 사용하면 된다.

setlocale(LC_ALL, "ko_KR.utf-8");

utf-8 대신 euc-kr을 써도 된다고 들었는데 테스트하진 않았다. setlocale 함수가 받는 첫 번째 인자값은 PHP 매뉴얼을 참고하라.

안녕하세요. 14년차 풀스택 웹개발자 안형우입니다. 이 블로그에서는 WordPress, PHP, CSS, 사용성, 리눅스 서버 등 풀스택 웹개발에서 마주하는 다양한 문제 상황과 해결책, 필요한 개념들을 다룹니다. 👉 소개


작업물

답글 남기기

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