2013-09-18 3 views
2

Я столкнулся с проблемой формата даты при чтении Excel с использованием PHPExcel. Даже я использовал $objReader->setReadDataOnly(false);, получая формат ячейки, но не работая для меня. Это как я читаю данные из Excel.PHP Дата публикации Формат даты - rangeToArray

$get_excel_data = $objPHPExcel->getActiveSheet()->rangeToArray("A1:".$highestColumn.$highestRow); 

Когда я пытаюсь дату печати, он показывает, как 03/06/13, и я попытался преобразовать в Mysl формат даты с помощью

date('Y-m-d',PHPExcel_Shared_Date::ExcelToPHP($val[1])); // echoing 2036-03-06 

Но это не работает, Может кто-нибудь подскажите мне вопрос? Основная проблема заключается я не получаю дату, формат номера (Excel), вместо него с указанием даты, как 03/06/13,

+0

Так что было фактическое значение и маску формата ячейки? Id есть ошибка в PHPExcel, как вы предлагаете, то эти детали чрезвычайно важны, если я должен исправить проблему. –

+0

@MarkBaker. Я не уверен, что это ошибка или нет, так как я отлично работал используя $ objWorksheet-> getCellByColumnAndRow (1, $ i) -> getValue() и $ objPHPExcel-> getActiveSheet() -> rangeToArray ("A1:". $ highColumn. $ highRow), В первом случае Im получает поле даты правильно, но дата этого случая не сработала, поэтому я использовал ту же функцию. Надеюсь, вы видели мой ответ. Спасибо за ваш комментарий – Shafeeque

ответ

12

Я решил вопрос даты

$get_excel_data = $objPHPExcel->getActiveSheet()->rangeToArray("A1:".$highestColumn.$highestRow);   
$i = 1; 
foreach($get_excel_data as $val) { 
     // in my case 2nd column will be date so that I can get the format by 
    $date = date('Y-m-d',PHPExcel_Shared_Date::ExcelToPHP($objWorksheet->getCellByColumnAndRow(1, $i)->getValue())); // array index 1    
    }     
+0

Что делает 'var_dump (PHPExcel_Shared_Date :: ExcelToPHP ($ objWorksheet-> getCellByColumnAndRow (1, $ i) -> getValue()));' output? –

+0

int (1370217600) – Shafeeque

+0

Это нормально. Но что сделал 'var_dump (PHPExcel_Shared_Date :: ExcelToPHP ($ val [1]));' вывод в ваш вопрос? –

1

Если PHPExcel_Shared_Date::ExcelToPHP($val[1]); возвращает 03/06/13, то это должно работать:

$date = new DateTime(PHPExcel_Shared_Date::ExcelToPHP($val[1])); 
echo $date->format('Y-m-d'); 

или

echo date('Y-m-d', strtotime(PHPExcel_Shared_Date::ExcelToPHP($val[1]))); 
+0

Спасибо за ответ, но он не работает. Я решил это по-другому. – Shafeeque

+0

Работает ли он сейчас? Как ты это починил? –

+0

Я отредактировал свой ответ, вы неправильно поняли результат. Сожалею,. Я отправлю ответ, который работал на меня. Спасибо. – Shafeeque

Смежные вопросы