|
@@ -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);
|
|
|
-})
|
|
|
+});
|