[PHP] 날짜 형식을 바꿔주는 date 함수
PHP 에서 날짜 형식을 바꿔주는 date
함수와 이 함수를 사용할 때 몇 가지 팁을 정리해봅니다.
date
date
함수는 특정 날짜를 입맛에 맛는 형식으로 바꿔서 표현해줍니다. 예를들어 내가 워드프레스에서 어떤 포스트를 작성하고 get_posts
함수를 이용해 해당 포스트를 조회해 그 정보를 post_date
로 표시하려고 하면(이런거 다 몰라도 됩니다.) 아래와 같이 표시됩니다.
2019-03-04 19:55:16
나는 포스트가 작성된 날짜만 표시 하고 싶은데 뒤에 작성 시간까지 표시가 되네요? 이 상황을 해결하는 방법은 여러개가 있습니다.
- post_date 의 값을 앞에서 부터 10개까지만 자라서 표시하기
- 날짜 형식을 바꿔서 표시하기
2번 방법으로 해결 하기 위해 필요한 함수가 date
함수입니다.
기본 사용법
date
함수의 기본 사용법은 아래와 같습니다.
date( [형식], [형식을 바꿀 날짜] )
투입 변수의 첫번째에는 내가 원하는 형식을 넣어주고, 두번째에 형식을 바꿔 표시하고 싶은 날짜를 넣어줍니다. 조금더 실전적인 예제를 보면 아래와 같습니다.
date( 'Y-m-d', $post -> post_date )
형식을 Y-m-d
로 지정한 것은 네자리의 연도(Y)와 두자리로 표기한 월(m), 두자리로 표기한 일(d)로 표시하라는 의미입니다.[^대문자와 소문자를 구분하니 조심하세요.^] PHP 에서의 날짜 표기 방법에 대한 자세한 형식은 참고자료의 1번 링크를 참고하세요.
오류
아주 간단한 함수지만 가끔 이게 무슨 상황이지 하는 오류가 발생 할 때가 있습니다.
날짜가 1970-01-01 로 표시 될 때
분명 두번째 투입 변수인 날짜를 잘 넣어주었는데도 불구하고 1970-01-01 과 같은 알 수 없는 날짜가 표시 될 때가 있습니다. 이는 두번째 투입 변수를 PHP 가 날짜로 받아들이지 못해 발생하는 오류입니다.
이때는 strtotime
함수를 이용해 문장 형태로 된 날짜를 실제 날짜와 시간 형식으로 변환해주고, date
함수를 이용하면 됩니다. strtotime
함수에 대한 자세한 내용은 참고자료 2번 링크를 참고하세요.
아래는 그 예제입니다.
date( 'Y-m-d', strtotime( $post -> post_date ) )
참고자료
- date, php.net
- strtotime, php.net
- [PHP] 문자열을 날짜와 시간으로 바꾸어 주는 strtotime 함수, 모두의매뉴얼
끝.
댓글 남기기