时间格式化
1.看著時間顯示有什么不同么?
顯示規則:若為當天,則顯示時分;若為其他日期,但是還在今年之內,顯示月-日 時分;若為今年之前,則顯示年-月-日 時分;
2.處理辦法:
①直接在查詢sql語句中將時間整理好,比如:
1 let questionsData = await this.model("questions").field('*,FROM_UNIXTIME(asktime,"%Y-%m-%d %H:%i") createtime,FROM_UNIXTIME(asktime,"%Y-%m-%d") createtime1,FROM_UNIXTIME(asktime,"%Y") createtime2,FROM_UNIXTIME(asktime,"%H:%i") createtime3,FROM_UNIXTIME(asktime,"%m-%d %H:%i") createtime4,FROM_UNIXTIME(replytime,"%Y-%m-%d %H:%i") createdate,FROM_UNIXTIME(replytime,"%Y-%m-%d") createdate1,FROM_UNIXTIME(replytime,"%Y") createdate2,FROM_UNIXTIME(replytime,"%H:%i") createdate3,FROM_UNIXTIME(replytime,"%m-%d %H:%i") createdate4').where({id:id}).find();//查詢這條問答具體信息
2
3 let nowDatey = timeUtil.dateFormat(new Date().getTime() / 1000, 'yyyy-MM-dd');
4 let nowDateyear = timeUtil.dateFormat(new Date().getTime() / 1000, 'yyyy');
5
6
7 let asktime = questionsData.createtime;//提問時間
8 if(questionsData.createtime1==nowDatey){
9 asktime=questionsData.createtime3;
10 }else if(questionsData.createtime2==nowDateyear){
11 asktime=questionsData.createtime4;
12 }
不足:sql語句比較長,而且當查詢數據量大的時候,這樣寫很耗費性能,不推薦;
②公共方法中處理時間:
1 let questionsData = await this.model("questions").where({id:id}).find();//查詢這條問答具體信息
2
3 let asktime = timeUtil.dateFormat(questionsData.asktime, 'yyyy-MM-dd hh:mm');//提問時間
4
5 asktime = await this.questiontime(asktime);
6
7
8 //=====================時間格式化公共方法
9 /**
10 * 時間格式化
11 * parameters:formattime
12 * @returns {Promise<void>}
13 */
14 questiontime = async function(formattime){
15 let nowDate = new Date().getTime() / 1000;
16 if (timeUtil.dateFormat(formattime, 'yyyy-MM-dd') == timeUtil.dateFormat(nowDate, 'yyyy-MM-dd')) {
17 return formattime= timeUtil.dateFormat(formattime, 'hh:mm');
18 } else if (timeUtil.dateFormat(formattime, 'yyyy') == timeUtil.dateFormat(nowDate, 'yyyy')) {
19 return formattime= timeUtil.dateFormat(formattime, 'MM-dd hh:mm');
20 } else {
21 return formattime= timeUtil.dateFormat(formattime, 'yyyy-MM-dd hh:mm');
22 }
23 }
這樣處理的方法明顯比第一種簡潔、效率高。推薦使用。
總結
- 上一篇: 达飞云贷怎么注销账户
- 下一篇: 京城股份是什么龙头