zoukankan      html  css  js  c++  java
  • 封装javascript帮助方法--时间转换

      在利用ajax和服务端交互的时候,服务端返回的时间格式是/Data(34567236565)/样子的(起码.net服务端是这么返回的)。每次解决都要写一遍方法,很是头疼。

    今天就封装一下,一劳永逸把。

      首先构建一个构造函数用于初始化帮助对象

    function DateTimeHelper() {
        this.convertToDate = convertToDate;
        this.getLocalTime = getLocalTime;
    };
    时间帮助对象

    里面有两个方法,一个是处理时间的方法。

    //格式化时间对象
    //时间处理(专门针对/Data(34567236565)/处理)
    //dateStr:时间字符串,len:要返回的时间最小粒度 值:year,month,day,hours,minutes,seconds
    function convertToDate(dateStr, len) {
        var timeStr = dateStr.match(/d+/)[0];
        var date = new Date(parseInt(timeStr));
        return convertToTimeStr(date, len)
    }
    格式化时间对象

    一个是获取本地时间的方法

    //获取当前时间对象,len:要返回的时间最小粒度 值:year,month,day,hours,minutes,seconds
    function getLocalTime(len) {
        var date = new Date();
        return convertToTimeStr(date, len);
    }
    当前本地时间

    拼接时间格式的核心方法

    //格式化时间对象,date:时间对象,len:要返回的时间最小粒度 值:year,month,day,hours,minutes,seconds
    function convertToTimeStr(date, len) {
        if (typeof len == "undefined") {
            len = "seconds";
        }
        var year = date.getFullYear();
        //可能需要补充占位符的字段
        var needAddPlaceholder = [date.getMonth() + 1, date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds()]
    
        //补齐占位符
        for (var x in needAddPlaceholder) {
            if (needAddPlaceholder[x] < 10) {
                needAddPlaceholder[x] = "0" + needAddPlaceholder[x];
            }
        }
    
        var dateArray = [year, needAddPlaceholder[0], needAddPlaceholder[1]];
        var time = [needAddPlaceholder[2], needAddPlaceholder[3], needAddPlaceholder[4]];
    
        switch (len) {
            case "year": return dateArray.slice(0, 1);
            case "month": return dateArray.slice(0, 2).join("-");
            case "day": return dateArray.slice(0, 3).join("-");
            case "hours": return dateArray.slice(0, 3).join("-") + " " + time.slice(0, 1);
            case "minutes": return dateArray.slice(0, 3).join("-") + " " + time.slice(0, 2).join(":");
            case "seconds": return dateArray.slice(0, 3).join("-") + " " + time.slice(0, 3).join(":");
            default:
                throw new Error('len必须是year,month,day,hours,minutes,seconds其中的一个');
        }
    }
    核心方法

    大功告成。

  • 相关阅读:
    jquery弹窗居中-类似alert()
    php explode时间分割
    php+mysql+jquery日历签到
    php查找字符串中第一个非0的位置截取
    SQL Server Data Tool 嘹解(了解)一下 SSDT -摘自网络
    Headless MSBuild Support for SSDT (*.sqlproj) Projects [利用msbuild自动化部署 .sqlproj]- 摘自网络
    SSDT – Error SQL70001 This statement is not recognized in this context-摘自网络
    Web Services and C# Enums -摘自网络
    Excel中VBA 连接 数据库 方法- 摘自网络
    解决 Provider 'System.Data.SqlServerCe.3.5' not installed. -摘自网络
  • 原文地址:https://www.cnblogs.com/zk3113/p/5830255.html
Copyright © 2011-2022 走看看