정규식 날짜값 변환 채택완료
그누스트랩
5년 전
조회 1,771
$_date = str_replace("am", "am", $list[$i]['subject']);
$_date = str_replace("pm", "pm", $list[$i]['subject']);
이와같이 함수를 만들어 호출하였고 결과값은 2020 / 04 / 30 (Thu) pm 16 입니다
2020 / 04 / 30 (Thu) pm 16 이 날짜에 대한 결과값을 정규식으로 변환시키려합니다.
$date = preg_replace('/(.+)/\s+(.+)/\s+(.+)\s+(.+)(am|pm)\s+(.+)/', '$2/$3/$1 $6:00:00', $_date);
결과치는 07/27/2017 17:00:00 이와같은 형태로 나오게 하려고합니다.
정규식 부분을 어떻게 처리하면될까요?
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
5년 전
#1. str_replace('am', 'am', ... 무의미한 치환
#2. pm 16 ... 이상한 시간
</p>
<p>/**
* Escape 처리 ... 2020 \/ 04 \/ 30 \(Thu\) pm 16
* 그룹 & 패턴 ... (\d+) \/ (\d+) \/ (\d+) \([a-zA-Z]{3}\) [a|p]m (\d+)
*/
$_date = '2020 / 04 / 30 (Thu) pm 16';
$date = preg_replace('/(\d+) \/ (\d+) \/ (\d+) \([a-zA-Z]{3}\) [a|p]m (\d+)/', '$2/$3/$1 $4:00:00', $_date);
// 04/30/2020 16:00:00</p>
<p>
* 대부분의 정상적인 날짜시간 문자열이라면 아래처럼 [속도는 느리지만] 간단하게 구할 수 있습니다.
$date = date('m/d/Y H:i:s', strtotime($list[$i]['subject']));
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
�
그누스트랩
5년 전
빠른답변 감사합니다^^
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인