zoukankan      html  css  js  c++  java
  • 时间格式化

           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     }

    这样处理的方法明显比第一种简洁、效率高。推荐使用。

  • 相关阅读:
    线程池-java高并发编程详解第八章记录
    类加载过程-《java高并发编程详解》第九章 重点记录
    Actuator Elasticsearch healthcheck error
    【译】优雅的停止docker容器
    spring cloud之Eureka不能注销docker部署的实例
    spring cloud之Eureka
    spring cloud之docker微服务客户端注册eureka问题
    spring cloud consul上下线体验
    [Kerberos] Kerberos教程(二)
    [Kerberos] Kerberos教程(一)
  • 原文地址:https://www.cnblogs.com/zhengyeye/p/9131896.html
Copyright © 2011-2022 走看看