チップス

excelの日付(serial値)を DATETIME値に変換 php


excelの日付(serial値)を プログラムで扱いやすいように DATETIME値に PHPで変換します。
excel

function excelserialtodatetime($serial, $format = 'Y-m-d H:i:s')
{
    if (is_int($serial)) {
        return  gmdate( $format, ($serial - 25569) * 60 * 60 *24);
    } else {
        return '';
    }
}

Excelから取得したシリアル値から 25569 (1900/1/1 から 1970/1/1 の経過時間 * 60 * 60 *24 )を引く。
MySQLの datetime型で扱いやすいフォーマットで return するようにしました。
 
gmdate関数
string gmdate ( string $format [, int $timestamp = time() ] )
返り値:日付を表す文字列を返します。 timestamp に数字以外が使用された場合は FALSE が返され、E_WARNING レベルのエラーが発生します。


   チップス