2012-08-09 3 views
0

PHP에서 .xls 파일을 읽으려면 Spreadsheet_Excel_Reader를 사용하고 있습니다.PHP Spreadsheet_Excel_Reader는 항상 1999 년 11 월 30 일을 기준으로 날짜를 읽습니다.

날짜를 읽을 때까지 모든 것이 잘됩니다. 날짜 필드를 읽는 경우에는 항상 1999 년 11 월 30 일 (또는 형식에 따라이 날짜의 변형)으로 날짜가 반환됩니다. OutputEncoding 설정 시도하고 동일한 결과를 제공합니다. 나는 라이브러리와 함께 제공되는 'example.xls'를 덤프 (dumping) 해 보았고 같은 결과를 얻었다.

해결 방법에 대한 도움을 주시면 매우 감사하겠습니다.

답변

0

날짜 형식을 Excel 형식으로 지정할 필요가 없습니다. 날짜 형식을 염두에두면 큰 따옴표로 묶으십시오. 예 : "13/04/1987"형식 ("DD/MM/YYYY");

Spreadsheet_Excel_Reader는 이것을 주위에 큰 따옴표 래퍼가있는 일반 문자열로 읽습니다.

그런 다음 PHP에서 이중 따옴표를 제거하고 바꿀 쿼리를 만듭니다.

$var = "13/04/1987"; 
$removeQuote = str_replace('"','',$var); 

다음은 전달 슬래시 (/)가 하이픈 (-)으로 바꿔야합니다.

$removeSlashes = str_replace('/','-',$removeQuote); 

그런 다음 PHP에서 날짜 함수를 사용하여 사용자의 적합성에 맞게 형식을 지정하십시오.

$format = date('Y-m-d', strtotime($removeSlashes)); 
echo $format; 

그리고 완료되었습니다 ... 전체 코드가 아래에 표시됩니다.

$var = "13/04/1987"; 
echo date('Y-m-d',strtotime(str_replace('/','-',str_replace('"','',$var)))); 
관련 문제