Tuesday

Mengubah Format Serial Date Excel ke SQL / PHP

function ExcelSerialDateToDMY($nSerialDate)
{
    // Excel/Lotus 123 ada bug tanggal 29-02-1900. 1900 bukan kabisat tapi dianggap iya
    if ($nSerialDate == 60)
    {
        $nDay    = 29;
        $nMonth    = 2;
        $nYear    = 1900;
        return;
    }
    else if ($nSerialDate < 60)
    {
        // Karena tanggal 29-02-1900 itu bug, mangkanya serial date dibawah 60 di-off
        $nSerialDate++;
    }
    // Modifikasi perhitungan Julian ke DMY dengan tambahan 2415019
    $l = $nSerialDate + 68569 + 2415019;
    $n = intval(( 4 * $l ) / 146097);
    $l = $l - intval(( 146097 * $n + 3 ) / 4);
    $i = intval(( 4000 * ( $l + 1 ) ) / 1461001);
    $l = $l - intval(( 1461 * $i ) / 4) + 31;
    $j = intval(( 80 * $l ) / 2447);
    $nDay = $l - intval(( 2447 * $j ) / 80);
    $l = intval($j / 11);
    $nMonth = $j + 2 - ( 12 * $l );
    $nYear = 100 * ( $n - 49 ) + $i + $l;

    return $nDay.'-'.$nMonth.'-'.$nYear;
}

silahken dicoba.. saya ngga jamin 100% berhasil.. tapi biasanya normal aja jalan
untuk format tanggal bisa seperti contoh atau tahun-bulan-tanggal

ICC

Mengubah Format Serial Date Excel ke SQL / PHP Rating: 4.5 Diposkan Oleh: Unknown

0 komentar:

Post a Comment