2015-01-12 4 views
0

안녕하세요, PHP 형식의 날짜 형식을 확인하려고합니다. 내가 겪고있는 문제는 시도하고 그들을 포맷 한 후 올바른 날짜 대신에 반환되는 임의의 예기치 않은 결과입니다.PHP : 날짜 형식 - MM/DD/YY> YYYY/MM/DD

날짜가 MM/DD/YY이고 문자열로 전달되는데 YYYY/MM/DD으로 변환하는 방법이 궁금합니다. 그것은 MM (12)는 올해 여기 YYYY (2012)


로 이동합니다 있도록이 같은 장소에 머물고 있지만, 각각의 섹션을 변환하려고처럼이 날짜를 변환 할 때 나는에 사용 된 코드의 섹션입니다 시도하고 형식을 변경 :

$arr[$i]
$date = $_GET["datepicker"]; 
$arr[$i] = strftime("%Y-%m-%d", strtotime($date)); 

내가 아무 영향을 미치지 않습니다이로 퍼팅하고 단지 배열입니다.

$date = $_GET["datepicker"]; 
list($month, $day, $year) = explode('/', $date); 
$timestamp = mktime(0, 0, 0, $month, $day, $year); 

$output = date('Y-m-d', $timestamp) 
+0

이 사이트는 검색 기능을 가지고 : http://stackoverflow.com/questions/2487921/convert-date-format-yyyy-mm-dd -dd-mm-yyyy/2487938 # 2487938 – CD001

+0

문제는 프로그래밍 문제보다 논리적 인 문제입니다. 하나의 질문은 스스로 해결하는 데 도움이 될 것입니다. PHP가 어떻게'$ date' 변수가 실제로 날짜를 나타내는 형식인지 인식 할 수 있는지 스스로에게 물어보십시오. –

답변

3

당신이 the DateTime class을 사용하는 것입니다 필요한 출력을 얻을 수있는 가장 쉬운 방법 :

$arr[$i] = date("Y-m-d", strtotime($date)); 

감사합니다,
키에 란

+0

나머지 응용 프로그램의 스타일로 유지하기 때문에 절차 방법을 사용하고 있습니다. 이것이 sql에 추가되면 '01-01-1970'으로 다시 읽습니다. – Kieranmv95

+0

@ Kieranmv95 :'DateTime :: format'과'date_format'의 반환 값은 문자열이므로 형식 호출 후에 처리 할 필요가 없습니다 . 또한'$ _GET [ 'datepicker']'값이 올바른지 확인한 다음 구문 분석을 시도하고'format'의 반환 값을 확인하십시오. 선택한 절차 스타일 : 전적으로 당신에게 달려 있습니다. 한 가지 코딩 스타일을 고수한다면 좋은 것입니다. 내가 의견에 말했듯이 - 'date_create_from_format' _does_ 객체를 반환하기 때문에 피곤할 것입니다. –

0

사용할 수 mktime을 : 은 또한 다음과 같은 시도 특히 : DateTime::createFromFormat :

$date = DateTime::createFromFormat('m/j/y', $_GET['datepicker']); 
//now to get the outpu: 
$arr[$i] = $date->format('Y-m-d'); 

도 절차 스타일의 대안이 :

$date = date_create_from_format('m/j/y', $_GET['datepicker']); 
//note, date_create_from_format returns an instance of DateTime 
$arr[$i] = date_format($date, 'Y-m-d');//same as $date->format('Y-m-d');