zoukankan      html  css  js  c++  java
  • 时间戳问题

    常见的时间戳问题

    时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

    1、ajax在post请求服务器UrL地址的时候加上时间戳,有效防止缓存url地址重复在服务器端请求而导致前后传输数据不一致情况。

       //解决浏览器缓存
       function timestamp(url){
           // var getTimestamp=Math.random();
           var getTimestamp=new Date().getTime();
          if(url.indexOf("?")>-1){
            url=url+"&timestamp="+getTimestamp
          }else{
            url=url+"?timestamp="+getTimestamp
          }
          return url;
        }

    2、java接口进程间传输的时间戳是精确到毫秒 多出来三个0,返回当前计算机时间(System.currentTimeMillis())精确到毫秒,js获取时间戳的getTime()方法精确到毫秒。

    //获取当前时间,格式YYYY-MM-DD
            function getNowFormatDate() {
                var date = new Date();
                var seperator1 = "-";
                var seperator2 = ":";
                var year = date.getFullYear();
                var month = date.getMonth() + 1;
                var strDate = date.getDate();
                var hours = date.getHours();
                var minutes = date.getMinutes();
                var seconds = date.getSeconds();
                if (month >= 1 && month <= 9) {month = "0" + month;}
                if (strDate >= 0 && strDate <= 9) {strDate = "0" + strDate;}
                if (hours >= 0 && hours <= 9) {hours = "0" + hours;}
                if (minutes >= 0 && minutes <= 9) {minutes = "0" + minutes;}
                if (seconds >= 0 && seconds <= 9) {seconds = "0" + seconds;}
                var currentdate = year + seperator1 + month + seperator1 + strDate+" "+hours+seperator2+minutes+seperator2+seconds;
                return currentdate;
            }

     

    //判断日期,时间大小
            function compareTime(startDate, endDate) {
                if (startDate.length > 0 && endDate.length > 0) {
                    var startDateTemp = startDate.split(" ");
                    var endDateTemp = endDate.split(" ");
                    var arrStartDate = startDateTemp[0].split("-");
                    var arrEndDate = endDateTemp[0].split("-");
                    var arrStartTime = startDateTemp[1].split(":");
                    var arrEndTime = endDateTemp[1].split(":");
                    var allStartDate = new Date(arrStartDate[0], arrStartDate[1], arrStartDate[2], arrStartTime[0], arrStartTime[1], arrStartTime[2]);
                    var allEndDate = new Date(arrEndDate[0], arrEndDate[1], arrEndDate[2], arrEndTime[0], arrEndTime[1], arrEndTime[2]);
                    if (allStartDate.getTime() >= allEndDate.getTime()) {
                        alert("startTime不能大于endTime,不能通过");
                        return false;
                    } else {
                        alert(startDate+"startTime小于endTime"+endDate+",所以通过了");
                        return true;
                    }
                } else {
                    alert("时间不能为空");
                    return false;
                }
            }

    3、@DateTimeFormat注解解决前端String传后端Date类型和@JsonFormat注解处理后端Date转前端String类型的问题。

    //注解位置,字段Date类型, @JsonFormat加GMT+8,

      @DateTimeFormat(pattern="yyyy-MM-dd")

    private Date alertDate;

    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")

    public Date getAlertDate() { return alertDate; }

    public void setAlertDate(Date alertDate) { this.alertDate = alertDate; }

     

     点点滴滴积累!

  • 相关阅读:
    方便的使用单击和双击更新DataGrid中的数据的例子 (转)
    针对 .NET 开发人员的存储过程评估(转)
    ASP.NET创建Web服务之XML基础结构(转)
    移动业务咨询系统--用VoiceXML开发语音应用程序(转)
    创建动态数据输入用户界面 (转)
    ASP.NET缓存:方法和最佳实践(转)
    ASP.NET 应用程序性能优化(转)
    出色图形用户界面(GUI)设计规范(转,中英对比)
    五种常见的ASP.NET安全缺陷(转)
    ASP.net控件开发系列之(一)开篇(转)
  • 原文地址:https://www.cnblogs.com/zq-ding/p/11424627.html
Copyright © 2011-2022 走看看