json.date.js 时间相关

function ConvertJSONDateToJSDateObject(jsondate) {
    var date = new Date(parseInt(jsondate.replace("/Date(", "").replace(")/", ""), 10));
    
    return date;
}
var _toIsoDate = Date.prototype.toISOString;

//借用kendo.toString做出Unspecified Kind的ISO8601格式

//Date.prototype.toISOString = function () {

//    return kendo.toString(this, "yyyy-MM-ddTHH:mm:ss");

//};
var newdate = null;
function getToDay() {
    var now = new Date();
    var nowYear = now.getFullYear();
    var nowMonth = now.getMonth();
    var nowDate = now.getDate();
    newdate = new Date(nowYear, nowMonth, nowDate);
    nowMonth = doHandleMonth(nowMonth + 1);
    nowDate = doHandleMonth(nowDate);
    return nowYear + "-" + nowMonth + "-" + nowDate;
}
function doHandleMonth(month) {
    if (month.toString().length == 1) {
        month = "0" + month;
    }
    return month;
}
function getYesterDay() {
    var newtimems = newdate.getTime() - (24 * 60 * 60 * 1000);
    var yesd = new Date(newtimems);
    var yesYear = yesd.getFullYear();
    var yesMonth = yesd.getMonth();
    var yesDate = yesd.getDate();
    yesMonth = doHandleMonth(yesMonth + 1);
    yesDate = doHandleMonth(yesDate);
    return yesYear + "-" + yesMonth + "-" + yesDate;
}


function getDate(jsondate) {
    var date = ConvertJSONDateToJSDateObject(jsondate);
    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    month = month < 10 ? "0" + month : month;
    var day = date.getDate();
    day = day < 10 ? "0" + day : day;
    return year + "-" + month + "-" + day;
}

function getDateTime(jsondate) {
    var date = ConvertJSONDateToJSDateObject(jsondate);
    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    //month = month < 10 ? "0" + month : month;
    var day = date.getDate();
    //day = day < 10 ? "0" + day : day;
    var hh = date.getHours();
    //hh = hh < 10 ? "0" + hh : hh;
    var mm = date.getMinutes();
    mm = mm < 10 ? "0" + mm : mm;
    var ss = date.getSeconds();
    ss = ss < 10 ? "0" + ss : ss;
    return year + "/" + month + "/" + day + " " + hh + ":" + mm + ":" + ss;
}

function getFormatDateTime(jsondate, strformatdatetime) {
    var date = ConvertJSONDateToJSDateObject(jsondate);
    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    var day = date.getDate();
    var hh = date.getHours();
    var mm = date.getMinutes();
    mm = mm < 10 ? "0" + mm : mm;
    var ss = date.getSeconds();
    ss = ss < 10 ? "0" + ss : ss;
    var newdatetime = strformatdatetime.replace("{yyyy}", year);
    newdatetime = newdatetime.replace("{m}", month);
    newdatetime = newdatetime.replace("{d}", day);
    newdatetime = newdatetime.replace("{hh}", hh);
    newdatetime = newdatetime.replace("{mm}", mm);
    newdatetime = newdatetime.replace("{ss}", ss);
    return newdatetime;
}

function getShortTime(jsondate) {
    var date = ConvertJSONDateToJSDateObject(jsondate);
    var hh = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
    var mm = date.getMinutes() == 0 ? "00" : date.getMinutes();
    return  hh + ":" + mm ;
}

function getShortHour(jsondate) {
    var date = ConvertJSONDateToJSDateObject(jsondate);
    var hh = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
    //var mm = date.getMinutes() == 0 ? "00" : date.getMinutes();
    return hh + ":00";
}

//聚合算法
function dateDiff(date1, date2) {
    var type1 = typeof date1, type2 = typeof date2;
    if (type1 == 'string')
        date1 = stringToTime(date1);
    else if (date1.getTime)
        date1 = date1.getTime();
    if (type2 == 'string')
        date2 = stringToTime(date2);
    else if (date2.getTime)
        date2 = date2.getTime();
    return (date1 - date2) / (1000 * 60 * 60 * 24); //结果是小时
}

//字符串转成Time(dateDiff)所需方法
function stringToTime(string) {
    var f = string.split(' ', 2);
    var d = (f[0] ? f[0] : '').split('-', 3);
    var t = (f[1] ? f[1] : '').split(':', 3);
    return (new Date(
    parseInt(d[0], 10) || null,
    (parseInt(d[1], 10) || 1) - 1,
    parseInt(d[2], 10) || null,
    parseInt(t[0], 10) || null,
    parseInt(t[1], 10) || null,
    parseInt(t[2], 10) || null
    )).getTime();
}

// 增加天
function AddDays(date, value) {
    date.setDate(date.getDate() + value);
}

// 增加月
function AddMonths(date, value) {
    date.setMonth(date.getMonth() + value);
}

// 增加年
function AddYears(date, value) {
    date.setFullYear(date.getFullYear() + value);
}

// 是否为今天
function IsToday(date) {
    return IsDateEquals(date, new Date());
}

// 是否为明天
function IsTmorm(date) {
    var today = new Date();
    AddDays(today, 1);
    return IsDateEquals(date, today);
}

// 是否为当月
function IsThisMonth(date) {
    return IsMonthEquals(date, new Date());
}

// 两个日期的年是否相等
function IsMonthEquals(date1, date2) {
    return date1.getMonth() == date2.getMonth() && date1.getFullYear() == date2.getFullYear();
}

// 判断日期是否相等
function IsDateEquals(date1, date2) {
    return date1.getDate() == date2.getDate() && IsMonthEquals(date1, date2);
}

// 返回某个日期对应的月份的天数
function GetMonthDayCount(date) {
    switch (date.getMonth() + 1) {
        case 1: case 3: case 5: case 7: case 8: case 10: case 12:
            return 31;
        case 4: case 6: case 9: case 11:
            return 30;
    }
    //feb:
    date = new Date(date);
    var lastd = 28;
    date.setDate(29);
    while (date.getMonth() == 1) {
        lastd++;
        AddDays(date, 1);
    }
    return lastd;
}

// 返回两位数的年份
function GetHarfYear(date) {
    var v = date.getYear();
    if (v > 9) return v.toString();
    return "0" + v;
}

// 返回月份(修正为两位数)
function GetFullMonth(date) {
    var v = date.getMonth() + 1;
    if (v > 9) return v.toString();
    return "0" + v;
}

// 返回日 (修正为两位数)
function GetFullDate(date) {
    var v = date.getDate();
    if (v > 9) return v.toString();
    return "0" + v;
}
// 返回时 (修正为两位数)
function GetFullHour(date) {
    var v = date.getHours();
    if (v > 9) return v.toString();
    return "0" + v;
}
// 返回分 (修正为两位数)
function GetFullMinte(date) {
    var v = date.getMinutes();
    if (v > 9) return v.toString();
    return "0" + v;
}
// 返回秒 (修正为两位数)
function GetFullSec(date) {
    var v = date.getSeconds();
    if (v > 9) return v.toString();
    return "0" + v;
}
// 替换字符串
function Replace(str, from, to) {
    return str.split(from).join(to);
}

// 格式化日期的表示
function FormatDate(date, str) {
    str = Replace(str, "yyyy", date.getFullYear());
    str = Replace(str, "MM", GetFullMonth(date));
    str = Replace(str, "dd", GetFullDate(date));
    str = Replace(str, "yy", GetHarfYear(date));
    str = Replace(str, "M", date.getMonth() + 1);
    str = Replace(str, "d", date.getDate());
    return str;
}

// 统一日期格式
function ConvertDate(str) {
    str = (str + "").replace(/^\s*/g, "").replace(/\s*$/g, ""); // 去除前后的空白
    var d;
    if (/^[0-9]{8}$/.test(str)) // 20040226 -> 2004-02-26
    {
        d = new Date(new Number(str.substr(0, 4)), new Number(str.substr(4, 2)) - 1, new Number(str.substr(6, 2)));
        if (d.getTime()) return d;
    }
    d = new Date(str);
    if (d.getTime()) return d;
    d = new Date(Replace(str, "-", "/"));
    if (d.getTime()) return d;
    return null;
}
//获取星期
function GetWeek(date)
{
    var week;
    if (date.getDay() == 0) week = "日";
    if (date.getDay() == 1) week = "一";
    if (date.getDay() == 2) week = "二";
    if (date.getDay() == 3) week = "三";
    if (date.getDay() == 4) week = "四";
    if (date.getDay() == 5) week = "五";
    if (date.getDay() == 6) week = "六";
    return week;
}

 

posted on 2014-03-27 09:45  朝着  阅读(119)  评论(0编辑  收藏  举报