2010-05-12 1 views
0

예는 내가 수행해야합니다PHP에서 문자열의 형식을 미리 모르는 숫자 형식으로 날짜를 변환하려면 어떻게해야합니까? 번역의

$stringDate = "November 2009"; $output = "11/09"; 
$stringDate = "October 1 2010"; $output = "10/01/2010"; 

$stringDate = "January 2010"; $output = "01/10"; 
$stringDate = "January 9 2010"; $output = "01/09/2010"; 

나는 $ stringDate가 될 것이다 형식 모르는 주와 월 일 년 세트에서 쉼표의 부족.

누구든지 도움을 주셔서 감사합니다.

답변

9

PHP.net strtotime

우선 날짜() 함수를 사용하여 자신의 형식으로 다음, 한 strtotime를 사용하여 UNIX 타임 스탬프로 변환합니다.

+0

이것은 내가 사용하는 방법이며 잘 작동합니다. date() 함수의 두 번째 매개 변수는 선택적이며 모든 타임 스탬프가 될 수 있습니다 (기본값은 물론 현재 시간 임). – trueheart78

2

strtotime()을 사용하십시오. 대부분의 형식으로 날짜 및/또는 시간을 캡처하고이를 타임 스탬프로 변환하여 date()으로 원하는 형식으로 지정할 수 있습니다.

편집 :
당신은 예를 들어 이런 식으로 작업을 수행 할 수 있습니다

$stringDate = "October 1 2010"; 
$mysql_datetime = date("Y-m-d H:i:s",strtotime($stringDate)); 
1

귀하의 문제는 "2009 년 11 월"날짜하지만 "2010년 10월 1일은"아니라고이다.

입력 유형을 알 수없는 경우 (날짜, 날짜 범위 등) 신뢰할 수있는 변환을 얻는 것이 매우 어려울 것입니다.

날짜는 물론 date("format", strtotime($input))을 사용할 수 있지만 문제의 일부만 해결하고 $input이 날짜가 아닌 경우 문제가 발생할 수 있습니다.

+0

입력 된 날짜가 인식되지 않으면 strtotime()은 FALSE를 반환합니다. – Kemo

+0

@Kemo, 요점을 놓치고 있습니다. 입력 내용이 정의에 의한 날짜가 아니며, 그 냄새는 잠재적 인 쓰레기 같은 냄새가납니다. – jeroen

관련 문제