php구문 날짜표시

php구문 날짜표시

QA

php구문 날짜표시

본문

php알못입니다..

 

preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "\\1년 \\2월 \\3일", $mb['mb_intercept_date']);

 

요렇게 되어 있잖아요~

 

이걸 그냥 2022.02.22 이런식으로 하려고 하는데

년, 월, 일만 지우고 점붙이면 되는건지

1년, 2월, 3월 여기 숫자(1,2,3)는 왜 붙어 있는건가여ㅠㅠ

이 질문에 댓글 쓰기 :

답변 2

preg_replace() 함수는 문자열을 정규식으로 치환할때 사용하는 함수입니다.
([0-9]{4})([0-9]{2})([0-9][2]} 의 의미는 ()괄호를 기준으로 1, 2, 3으로 구역을 나눈것이고
그 안에 {}괄호안의 숫자는 4자리, 2자리, 2자리 라는 의미입니다.

즉 DB필드상에 값은 20220222로 입력되어 있지만,

그 사이에 년, 월, 일이라는 문자열을 추가하기위해 사용된 함수입니다.

 

1년, 2월, 3월처럼 앞에 숫자가 붙어있는 의미는

위에 ()괄호에서 구역으로 나눈, 1구역, 2구역, 3구역이라는 의미입니다.

즉 1구역 2022, 2구역 02, 3구역 22가 됩니다.

그렇기때문에 2022년 02월 22일로 함수에서 치환해서 출력되는것 입니다.


2022.02.22식으로 처리하려면,
"\\1. \\2. \\3." 으로 수정하시면됩니다.
다만 중간에 띄어쓰기가 있으면 공백도 지우시면됩니다.

([0-9]{4})([0-9]{2})([0-9][2]} > ( ) 순서대로 1, 2, 3

 

echo preg_replace('/([0-9]{4})([0-9]{2})([0-9]{2})/', '$1.$2.$3', $mb['mb_intercept_date']);

또는

echo implode('.', sscanf($mb['mb_intercept_date'], '%4s%2s%2s'));

답변을 작성하시기 전에 로그인 해주세요.
전체 123,604 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT