封装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其中的一个');
    }
}
核心方法

大功告成。

 

posted @ 2016-09-01 16:02  上地之客  阅读(176)  评论(0编辑  收藏  举报