Skip to content

Commit b9ad1fc

Browse files
committed
fix(SPA): 修正动态卡片时间
(cherry picked from commit c57333d) # Conflicts: # resources/spa/src/components/FeedCard/FeedCard.vue # resources/spa/src/filters.js
1 parent b0c4ce0 commit b9ad1fc

File tree

3 files changed

+32
-24
lines changed

3 files changed

+32
-24
lines changed

resources/spa/src/components/FeedCard/FeedCard.vue

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
<template>
22
<div class="m-box-model m-card" @click="handleView('')">
33
<div class="m-box">
4-
<div
5-
v-if="timeLine"
6-
class="m-box-model m-aln-center m-flex-grow0 m-flex-shrink0 m-card-time-line"
7-
v-html="timeLineText"
8-
/>
4+
<template v-if="timeLine">
5+
<div v-if="isToday" v-text="'今天'" />
6+
<div v-else class="timeline-text">
7+
<span>{{ time.getDate() }}</span>
8+
<span class="month">{{ time.getMonth() + 1 }}月</span>
9+
</div>
10+
</template>
911
<Avatar v-else :user="user" />
1012
<section class="m-box-model m-flex-grow1 m-flex-shrink1 m-card-main">
1113
<header v-if="!timeLine" class="m-box m-aln-center m-justify-bet m-card-usr">
@@ -91,11 +93,12 @@
9193

9294
<script>
9395
import { mapState } from 'vuex'
96+
import * as api from '@/api/feeds.js'
97+
import { transTime } from '@/util'
98+
import { escapeHTML } from '@/filters.js'
9499
import FeedImage from './FeedImage.vue'
95100
import FeedVideo from './FeedVideo.vue'
96101
import CommentItem from './CommentItem.vue'
97-
import { time2txt, escapeHTML } from '@/filters.js'
98-
import * as api from '@/api/feeds.js'
99102
100103
export default {
101104
name: 'FeedCard',
@@ -166,7 +169,14 @@ export default {
166169
return this.feed.feed_view_count || 0
167170
},
168171
time () {
169-
return this.feed.created_at
172+
let str = this.feed.created_at
173+
return transTime(str)
174+
},
175+
isToday () {
176+
// 时间差 = 当前时间 - date (单位: 秒)
177+
let offset = (new Date() - this.time) / 1000
178+
if (offset / 3600 < 24) return true
179+
return false
170180
},
171181
user () {
172182
const user = this.feed.user
@@ -193,16 +203,6 @@ export default {
193203
this.feed.has_collect = val
194204
},
195205
},
196-
timeLineText () {
197-
const text = time2txt(this.time)
198-
const len = text.length
199-
return len > 4
200-
? `<span>${text.substr(0, len - 2)}</span><span>${text.substr(
201-
-2,
202-
2
203-
)}</span>`
204-
: `<span>${text}</span>`
205-
},
206206
title () {
207207
return this.feed.title || ''
208208
},

resources/spa/src/filters.js

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import plueMessageBundle from 'plus-message-bundle'
22
import xss from 'xss'
3+
import { transTime } from '@/util'
34

45
/**
56
* ThinkSNS Plus 消息解析器,获取顶部消息.
@@ -111,12 +112,7 @@ export const addTimeOffset = date => {
111112

112113
export const time2tips = date => {
113114
if (typeof date === 'string') {
114-
date = date.replace(/-/g, '/') // for safari
115-
// match 2018/10/17 01:48:52"
116-
if (date.match(/^\d{4}\/\d{2}\/\d{2} \d{2}:\d{2}:\d{2}$/)) {
117-
// 如果匹配到服务器返回的时间是非标准格式的祖鲁时间,需要进行本地化
118-
date = +new Date(date) - timeOffset
119-
}
115+
date = transTime(date)
120116
}
121117
const time = new Date(date)
122118
const offset = (new Date().getTime() - time) / 1000

resources/spa/src/util/index.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { timeOffset } from '@/filters'
2+
13
/**
24
* 空函数
35
* 用于默认函数引用判断
@@ -184,3 +186,13 @@ export const generateString = length => {
184186
.toString(36)
185187
.substr(2, length)
186188
}
189+
190+
export const transTime = (date) => {
191+
// match 2018/10/17 01:48:52"
192+
if (date.match(/^\d{4}[-/]\d{2}[-/]\d{2} \d{2}:\d{2}:\d{2}$/)) {
193+
date = date.replace(/-/g, '/') // for safari
194+
// 如果匹配到服务器返回的时间是非标准格式的祖鲁时间,需要进行本地化
195+
date = +new Date(date) - timeOffset
196+
}
197+
return new Date(date)
198+
}

0 commit comments

Comments
 (0)