Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Data od zmiany w programie Excel po przesłaniu do mysql

Program Excel przechowuje wartości dat jako „rzeczywistą” liczbę dni od daty bazowej, która może wynosić 1 stycznia 1900 (wartość domyślna dla wersji programu Excel dla systemu Windows) lub 1 stycznia 1904 (wartość domyślna dla wersji programu Excel na komputery Mac):godzina jest część ułamkowa, więc południe w dowolnym dniu jest o 0,5 większe niż północ. Aby dodać do nieszczęścia, 29 lutego 1900 jest prawidłową datą dla kalendarza Windows 1900.

Zakładając kalendarz Windows 1900:

Funkcja
function ExcelToPHP($dateValue = 0) {
    $myExcelBaseDate = 25569;
    //  Adjust for the spurious 29-Feb-1900 (Day 60)
    if ($dateValue < 60) {
        --$myExcelBaseDate;
    }

    // Perform conversion
    if ($dateValue >= 1) {
        $utcDays = $dateValue - $myExcelBaseDate;
        $returnValue = round($utcDays * 86400);
        if (($returnValue <= PHP_INT_MAX) && ($returnValue >= -PHP_INT_MAX)) {
            $returnValue = (integer) $returnValue;
        }
    } else {
        $hours = round($dateValue * 24);
        $mins = round($dateValue * 1440) - round($hours * 60);
        $secs = round($dateValue * 86400) - round($hours * 3600) - round($mins * 60);
        $returnValue = (integer) gmmktime($hours, $mins, $secs);
    }

    // Return
    return $returnValue;
}   //  function ExcelToPHP()

jeśli Mac 1904 bazowy, wymień

$myExcelBaseDate = 25569;
    //  Adjust for the spurious 29-Feb-1900 (Day 60)
    if ($dateValue < 60) {
        --$myExcelBaseDate;
}

z

$myExcelBaseDate = 24107;

Zwróci to wartość daty/czasu PHP (standardowa data bazowa z 1970 roku), którą możesz następnie sformatować według własnego uznania za pomocą funkcji date();




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Java, jak zmienić aktualną bazę danych na inną?

  2. mysqld_safe Katalog '/var/run/mysqld' dla pliku gniazda UNIX nie istnieje

  3. utf8 zniekształcony podczas importowania do mysql

  4. MySQL:unia lewego złączenia z prawym złączeniem

  5. Czy możemy zaimportować SQL z wiadra S3 do AWS ec2 (instancja)?