Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Ngày từ excel thay đổi khi được tải lên mysql

Excel giữ các giá trị ngày là số ngày "thực" kể từ ngày cơ sở, có thể là ngày 1 tháng 1 năm 1900 (mặc định cho các phiên bản Excel của Windows) hoặc ngày 1 tháng 1 năm 1904 (mặc định cho các phiên bản Excel của Mac):thời gian là phần thập phân, vì vậy giữa trưa của bất kỳ ngày cụ thể nào lớn hơn nửa đêm là 0,5. Thêm vào đó, ngày 29 tháng 2 năm 1900 là một ngày hợp lệ cho lịch Windows 1900.

Giả sử lịch Windows 1900:

Hàm
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()

nếu Mac 1904 base, thay thế

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

với

$myExcelBaseDate = 24107;

Điều này sẽ trả về một giá trị ngày / giờ PHP (ngày cơ sở tiêu chuẩn năm 1970), sau đó bạn có thể định dạng theo ý muốn bằng cách sử dụng 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. TẢI THÔNG TIN DỮ LIỆU Mã lỗi:13

  2. Lược đồ cơ sở dữ liệu hệ thống nhắn tin

  3. MYSQL - Chọn giá trị cụ thể từ một mảng được tìm nạp

  4. django auth Trường email người dùng cắt ngắn

  5. Có phương pháp hay nhất / cách thống nhất để cập nhật trường cơ sở dữ liệu có chứa khóa-giá trị băm không?