2016-05-24 9 views
0

強いテキスト nclude 'PHPExcel/IOFactory.php';phpの読み込み日付をY-m-d形式に変換するには?

// This is the file path to be uploaded. 
$inputFileName = 'admin/' . $_SESSION['file_name']; 

try { 
    $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); 
} catch (Exception $e) { 
    die('Error loading file "' . pathinfo($inputFileName, PATHINFO_BASENAME) . '": ' . $e->getMessage()); 
} 

$allDataInSheet = $objPHPExcel->getActiveSheet()->toArray(null, true, true, true); 

8/28/1980のようなエクセルシートに日付を入れて、私はこの08-28-80のように日付を持っています、私はこの1980-08-28ような値を取得する必要があります。

私を手伝ってください!

+0

が、これは本当のExcelファイル、またはあなたが読んでいるcsvファイルか、文字列にExcelの日付値を変換してくださいそれが実際のExcelファイルの場合、この日付が実際に使用している書式マスクは何ですか? –

+0

'toArray()'メソッドを呼び出す前に、フォーマットマスク( 'YYYY-MM-DD')をこれらのセルに適用することもできます –

+0

私はxlsx形式を使用していますfrom Excelデータ日付の値はこのようになっています08-28- 80 –

答えて

0

あなたの日付がこの08-28-80のようなものなら、あなたは1つの問題に直面します。あなたが何を意味するか知っていれば、年が1980年か2080年かどうかを判断することはできません。

あなたは

function convert_date($data){ 
    $date_arr = explode("-",$data); 
    if($date_arr[2] >= 0 && $date_arr[2] < 17){ 
     $new_date = "20".$date_arr[2]."-".$date_arr[1]."-".$date_arr[0]; 
    } else { 
     $new_date = "19".$date_arr[2]."-".$date_arr[1]."-".$date_arr[0]; 
    } 
    return $new_date; 
} 

この機能を使用することができます私は、この関数は、私はこれがあなたの期待であると思いますあなた

+0

を使用してフォーマットすることができますが、Excel日付の値はこのようになっています08-28-80 –

+0

日付はこのようです - > 08-28-80そしてあなたはこれを好きにします - > 1980 -08-28? –

+0

私はあなたの助けを借りたら教えてください。 –

0

に役立ちます願っています。

<?php 
$dateVal = '8/28/1980'; // Excel date value 
$date = strtotime($dateVal); 
$newformat = date('Y-m-d',$date); 
echo $newformat; 
?> 
+0

を修正しますが、Excelの日付の値は08-28-80のようになっていますが、 –

関連する問題