Parcourir la source

格式化数据

cqp il y a 11 mois
Parent
commit
f6807442e3
1 fichiers modifiés avec 36 ajouts et 1 suppressions
  1. 36 1
      app/Service/ImportService.php

+ 36 - 1
app/Service/ImportService.php

@@ -275,7 +275,9 @@ class ImportService extends Service
                     $rowData = [];
 
                     foreach ($cellIterator as $cell) {
-                        $rowData[] = $cell->getFormattedValue();
+                        $cellData = $cell->getFormattedValue();
+                        if(! empty($cellData)) $cellData = $this->convertToYMD($cellData);
+                        $rowData[] = $cellData;
                     }
 
                     $sheetData[] = $rowData;
@@ -296,6 +298,39 @@ class ImportService extends Service
         }
     }
 
+    public function convertToYMD($date)
+    {
+        // 定义一些常见的日期格式
+        $formats = [
+            'Y-m-d', // 2023-10-17
+            'Y/m/d', // 2023/10/17
+            'd-m-Y', // 17-10-2023
+            'd/m/Y', // 17/10/2023
+            'm-d-Y', // 10-17-2023
+            'm/d/Y', // 10/17/2023
+//            'Ymd',   // 20231017
+//            'dmy',   // 17102023
+//            'dmY',   // 17102023
+//            'dMY',   // 17102023
+//            'Ymd',   // 20231017
+//            'Ydm',   // 20231017
+//            'YDM',   // 20231017
+//            'YDm',   // 20231017
+        ];
+
+        // 尝试使用每个格式解析日期
+        foreach ($formats as $format) {
+            $dateTime = \DateTime::createFromFormat($format, $date);
+            if ($dateTime && $dateTime->format($format) === $date) {
+                // 成功解析日期,返回转换后的 Y-m-d 格式
+                return $dateTime->format('Y-m-d');
+            }
+        }
+
+        // 如果所有格式都未能解析日期,则返回原字符串
+        return $date;
+    }
+
     public function getFileData1($data){
         if(empty($data['url'])) return [false, '文件路径不能为空'];