Procházet zdrojové kódy

fix: 时间格式化

梦辉 před 5 měsíci
rodič
revize
fd18f256e4
1 změnil soubory, kde provedl 23 přidání a 6 odebrání
  1. 23 6
      src/common/js/filters.js

+ 23 - 6
src/common/js/filters.js

@@ -8,13 +8,30 @@ import moment from 'moment'
  */
 Vue.filter('date', function(value, formatString = 'YYYY-MM-DD HH:mm:ss') {
     if (!value) return '';
-//  如果是string,转换为number
+
+    // 检查是否为ISO 8601格式的时间字符串
+    const iso8601Pattern = /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}\+\d{2}:\d{2}/;
+    const normalPattern = /\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/;
+
+    // 如果是字符串且匹配ISO 8601格式
+    if (typeof value === 'string' && iso8601Pattern.test(value)) {
+        return moment(value).format(formatString);
+    }
+
+    // 如果是字符串且匹配正常时间格式
+    if (typeof value === 'string' && normalPattern.test(value)) {
+        return moment(value, 'YYYY-MM-DD HH:mm:ss').format(formatString);
+    }
+
+    // 如果是字符串,将其转换为数字
     if (typeof value === 'string') {
-        value = Number(value)
+        value = Number(value);
     }
-    //如果是秒级时间戳,转换为毫秒级
-    if ( typeof value === 'number' && value.toString().length === 10) {
-        value = value * 1000
+
+    // 如果是秒级时间戳,转换为毫秒级
+    if (typeof value === 'number' && value.toString().length === 10) {
+        value = value * 1000;
     }
+
     return moment(value).format(formatString);
-})
+});