Просмотр исходного кода

fix(DimensionActivities): add iOS date parsing fallback for Java format

iOS Safari 不支持 Java 'EEE MMM dd HH:mm:ss zzz yyyy' 日期格式
新增 _parseDate 方法提前归一化为 iOS 兼容格式

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
liaoxg 3 месяцев назад
Родитель
Сommit
9691bd72fa
1 измененных файлов с 19 добавлено и 2 удалено
  1. 19 2
      cfc-frontend/components/DimensionActivities.vue

+ 19 - 2
cfc-frontend/components/DimensionActivities.vue

@@ -143,14 +143,31 @@ export default {
     },
     formatTime: function(timeStr) {
       if (!timeStr) return '待定'
-      var d = new Date(timeStr)
-      if (isNaN(d.getTime())) return timeStr
+      var d = this._parseDate(timeStr)
+      if (!d || isNaN(d.getTime())) return timeStr
       var month = d.getMonth() + 1
       var day = d.getDate()
       var hour = d.getHours()
       var minute = d.getMinutes() < 10 ? '0' + d.getMinutes() : d.getMinutes()
       return month + '月' + day + '日 ' + hour + ':' + minute
     },
+    // iOS 不兼容 Java "EEE MMM dd HH:mm:ss zzz yyyy" 格式,需提前归一化
+    _parseDate: function(timeStr) {
+      if (!timeStr) return null
+      // 尝试标准格式
+      var d = new Date(timeStr)
+      if (!isNaN(d.getTime())) return d
+      // Java 格式: "Sat Aug 22 14:00:00 CST 2026" → 转换为 iOS 兼容格式
+      var javaRe = /^\w{3}\s+(\w{3})\s+(\d{1,2})\s+(\d{2}:\d{2}:\d{2})\s+\w{3}\s+(\d{4})$/
+      var m = timeStr.match(javaRe)
+      if (m) {
+        var months = {Jan:'01',Feb:'02',Mar:'03',Apr:'04',May:'05',Jun:'06',Jul:'07',Aug:'08',Sep:'09',Oct:'10',Nov:'11',Dec:'12'}
+        var iso = m[4] + '/' + (months[m[1]] || '01') + '/' + (m[2].length === 1 ? '0' + m[2] : m[2]) + ' ' + m[3]
+        d = new Date(iso)
+        if (!isNaN(d.getTime())) return d
+      }
+      return null
+    },
     formatPriceWithSymbol: function(price) {
       if (price == null) return '免费'
       return '¥' + (Number(price) / 100).toFixed(0)