zoukankan      html  css  js  c++  java
  • reactNative 计算时间差

    因为后台返回的是"2018-06-30 00:00:00"这种格式,需要先转换一下,再计算距离今天得时间差。
    /**
    *获取时间差值(天数)
    */
    getTimeDifference(date){
    //转换时间
    let regEx = new RegExp("\-","gi");
    let validDateStr=date.replace(regEx,"/");
    let milliseconds=Date.parse(validDateStr);
    var sendTime = new Date(milliseconds);
    //当前时间
    var nowTime = new Date();
    //差值
    var date3 = sendTime - nowTime;

    //天
    var days=Math.floor(date3/(24*3600*1000));
    return days;
    }


    在此基础上如果要计算具体的时分秒参考如下:
    //天
    var days=Math.floor(date3/(24*3600*1000))
    //时
    var leave1=date3%(24*3600*1000)
    var hours=Math.floor(leave1/(3600*1000))
    //分
    var leave2=leave1%(3600*1000)
    var minutes=Math.floor(leave2/(60*1000))

    //秒
    var leave3=leave2%(60*1000)
    var seconds=Math.round(leave3/1000)




    下面是时间转换格式方法:
    class DateUtil{
      /**
       * 例如:2017-06-28 10:48:46转成date类,
       * 可把- replace成/
       * @param dateString
       * @return Date
       */
      static parserDateString(dateString){
        if(dateString){
          let regEx = new RegExp("\-","gi");
          let validDateStr=dateString.replace(regEx,"/");
          let milliseconds=Date.parse(validDateStr);
          return new Date(milliseconds);
     
        }
      }
     
      // timestamp时间戳 formater时间格式
      static formatDate(timestamp, formater) {
        let date = new Date();
        date.setTime(parseInt(timestamp));
        formater = (formater != null)? formater : 'yyyy-MM-dd hh:mm';
        Date.prototype.Format = function (fmt) {
          var o = {
            "M+": this.getMonth() + 1, //月
            "d+": this.getDate(), //日
            "h+": this.getHours(), //小时
            "m+": this.getMinutes(), //分
            "s+": this.getSeconds(), //秒
            "q+": Math.floor((this.getMonth() + 3) / 3), //季度
            "S": this.getMilliseconds() //毫秒
          };
     
          if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
          for (var k in o) {
            if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ?
              (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
          }
          return fmt;
        }
        return date.Format(formater);
      }
    }
    export default DateUtil;
     
     
    参考链接:http://www.jb51.net/article/126673.htm
         https://blog.csdn.net/weng_sky/article/details/52098310


  • 相关阅读:
    Go复习--为何不允许重载overload?
    Go疑问-1
    Go复习--for循环陷井
    Go复习--slice协程不安全
    Go复习之久违的goto语句
    Go复习---编译错误:undefined:
    Linux 环境拷贝文件发生的错误
    【转载】java数据库操作
    VBA文件处理
    【转】关于C#使用Excel的数据透视表的例子
  • 原文地址:https://www.cnblogs.com/cui-cui/p/9044827.html
Copyright © 2011-2022 走看看