Explorar o código

添加计算时差

胡家华 %!s(int64=5) %!d(string=hai) anos
pai
achega
5862aa9057
Modificáronse 1 ficheiros con 48 adicións e 0 borrados
  1. 48 0
      index.js

+ 48 - 0
index.js

@@ -173,6 +173,53 @@ const ScanSensitiveWords = (content = '') => {
173 173
     console.log('offWords',offWords)
174 174
     return sensitiveWords(offWords,_content)
175 175
 }
176
+
177
+// 计算时差
178
+/**
179
+ * 
180
+ * @param {String} startTime 开始时间
181
+ * @param {String} endTime 结束时间 
182
+ * @returns {Object}  diffTime > 0 ? 已结束 : 未结束; 单位 ms   diffTimeFormat // eg: 15分钟10秒
183
+ * 
184
+ * useage: getDiffTime(moment(), moment(response.expireTime * 1000))
185
+ * 
186
+ */
187
+const getDiffTime = (startTime = moment(), endTime = moment(), formatString = 'YYYY-MM-DD HH:mm:ss') =>{
188
+    try {
189
+      if ((typeof startTime !== 'object') || typeof endTime !== 'object') {
190
+        throw new Error('时间参数传入错误!')
191
+      }
192
+      const formatStartTime = startTime.format(formatString);
193
+      const formatEndTime = endTime.format(formatString);
194
+      const y = moment(formatStartTime).diff(moment(formatEndTime), 'y')
195
+      const M = moment(formatStartTime).diff(moment(formatEndTime), 'M')
196
+      const d = moment(formatStartTime).diff(moment(formatEndTime), 'd')
197
+      const h = moment(formatStartTime).diff(moment(formatEndTime), 'h')
198
+      const m = moment(formatStartTime).diff(moment(formatEndTime), 'm')
199
+      const s = moment(formatStartTime).diff(moment(formatEndTime), 's')
200
+      const ms = moment(formatStartTime).diff(moment(formatEndTime))
201
+      diffTimeFormat = 
202
+      `${y < 0 ? `${Math.abs(y)}年` : ''}
203
+      ${M < 0 ? `${Math.abs(M)}月` : ''}
204
+      ${d < 0 ? `${Math.abs(d)}天` : ''}
205
+      ${h < 0 ? `${Math.abs(h)}小时` : ''}
206
+      ${m < 0 ? `${Math.abs(m)}分` : ''}
207
+      ${s < 0 ? `${Math.abs(s)}秒` : ''}`;
208
+      return {
209
+        diffTimeFormat: diffTimeFormat.trim(),
210
+        y,
211
+        M,
212
+        d,
213
+        h,
214
+        m,
215
+        s,
216
+        ms,
217
+      }
218
+    } catch (error) {
219
+      console.log('getDiffTime计算错误',error)
220
+    }
221
+  }
222
+
176 223
 export default {
177 224
     ScanSensitiveWords, // 查找敏感词 敏感词汇屏蔽为 ****
178 225
     showSaleNumText, // 显示销量的文本
@@ -185,4 +232,5 @@ export default {
185 232
     MD5, // md5加密
186 233
     Base64, // 转为Base64的字符串v
187 234
     MathRand, // 获取随机数
235
+    getDiffTime, // 计算时差
188 236
 }