date.plugin.js 日期插件

//定义命名空间
var DatePlugin;
if (!DatePlugin) DatePlugin = {};

/*整理时间:2015-05-28*/

var defaultFormat = "yyyy-MM-dd";   //默认的日期格式
var totalDefaultFormat = "yyyy-MM-dd hh:mm:ss";
var pointFormat = "yyyy.MM.dd";
var slashFormat = "MM/dd/yyyy";
var textFormat = "yyyy年MM月dd日";
var totalTextFormat = "yyyy年MM月dd日hh小时mm分ss秒";
var noFormat = "yyyyMMdd";

/* 转换时间格式 */
Date.prototype.Format = function (DateFormat) {
    var o = {
        "M+": this.getMonth() + 1, //month
        "d+": this.getDate(), //day
        "h+": this.getHours(), //hour
        "m+": this.getMinutes(), //minute
        "s+": this.getSeconds(), //second
        "q+": Math.floor((this.getMonth() + 3) / 3), //quarter
        "S": this.getMilliseconds() //millisecond
    }
    var format = (DateFormat) ? DateFormat : defaultFormat;
    if (/(y+)/.test(format)) {
        format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    }

    for (var k in o) {
        if (new RegExp("(" + k + ")").test(format)) {
            format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
        }
    }
    return format;
}

/* 增加天数 */
Date.prototype.addDay = function (num) {
    this.setDate(this.getDate() + num);
    return this;
};

/* 增加月数 */
Date.prototype.addMonth = function (num) {
    var tempDate = this.getDate();
    this.setMonth(this.getMonth() + num);
    if (tempDate != this.getDate()) this.setDate(0);
    return this;
};

/* 增加年数 */
Date.prototype.addYear = function (num) {
    var tempDate = this.getDate();
    this.setYear(this.getYear() + num);
    if (tempDate != this.getDate()) this.setDate(0);
    return this;
};

/*
*获取某日日期  可传日期格式参数
*默认格式:YYYY-MM-DD
*/
DatePlugin.exactDate = {

    /* 获取今日日期 */
    getTodayDate:function (DateFormat) {
        var myDate = new Date();
        return myDate.Format(DateFormat);
    },

    /* 获取明日日期 */
    getTomorrowDate: function (DateFormat) {
        var myDate = new Date().addDay(1);
        return myDate.Format(DateFormat);
    },

    /* 获取昨天日期 */
    getYesterdayDate: function (DateFormat) {
        var myDate = new Date().addDay(-1);
        return myDate.Format(DateFormat);
    }
}

/*
*统计某个时间段的周数或天数或者返回值是数字
*/
DatePlugin.staticDate = {

    /*统计今年某月的天数*/
    getMonthDays: function (Month) {
        var myMonth = Month;
        var now = new Date();                    //当前日期
        var nowYear = now.getFullYear();         //当前年
        var monthStartDate = new Date(nowYear, myMonth, 1);
        var monthEndDate = new Date(nowYear, myMonth + 1, 1);
        var days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24);
        return days;
    },

    /*统计某年某月总周数*/
    getWeekCounts: function (year, month) {
        var firstDate = new Date(year, month, 1);
        var first = firstDate.getDay();
        var endDate = 6;     // 周六
        var firstWeekday = endDate - first + 1;
        var lastDay = this.getMonthDays(month) - firstWeekday;
        return Math.ceil(lastDay / 7) + 1;
    },

    /*获取当前月*/
    getCurrentMonth:function () {
        var now = new Date(); //当前日期
        var nowDayOfWeek = now.getDay(); //今天本周的第几天
        var nowDay = now.getDate(); //当前日
        var nowMonth = now.getMonth() + 1; //当前月
        var nowYear = now.getFullYear(); //当前年
        return nowMonth;
    }
}

DatePlugin.calculDate = {

    /*计算几天前或几天后的日期*/
    getTrunsAddDay: function (date,num,DateFormat) {
        var targetday_milliseconds = date.getTime() + 1000 * 60 * 60 * 24 * num;
        var resultDate = new Date(date.setTime(targetday_milliseconds));
        return resultDate.Format(DateFormat);
    },

    /*获得本月的开始日期*/
    getMonthStartDate: function (DateFormat) {
        var now = new Date();                    //当前日期
        var nowMonth = now.getMonth();           //当前月
        var nowYear = now.getFullYear();             //当前年
        var monthStartDate = new Date(nowYear, nowMonth, 1);
        return monthStartDate.Format(DateFormat);
    },

    /*获得本月的结束日期*/
    getMonthEndDate: function (DateFormat) {
        var now = new Date();                    //当前日期
        var nowDayOfWeek = now.getDay();         //今天本周的第几天
        var nowDay = now.getDate();              //当前日
        var nowMonth = now.getMonth();           //当前月
        var nowYear = now.getFullYear();             //当前年
        var monthEndDate = new Date(nowYear, nowMonth, DatePlugin.staticDate.getMonthDays(nowMonth));
        return monthEndDate.Format(DateFormat);
    },

    /*获得某个月的开始日期*/
    getMonthStart: function (currDate, DateFormat) {
        var now = new Date(currDate);          //当前日期
        var nowMonth = parseInt(now.getMonth());        //当前月
        var nowYear = now.getFullYear();         //当前年     

        var monthStartDate = new Date(nowYear, nowMonth, 1);
        return monthStartDate.Format(DateFormat);
    },

    /*获得某个月的结束日期*/
    getMonthEnd: function (currDate, DateFormat) {
        var now = new Date(currDate);                    //当前日期
        var nowMonth = parseInt(now.getMonth());        //当前月
        var nowYear = now.getFullYear();         //当前年     

        var monthEndDate = new Date(nowYear, nowMonth, DatePlugin.staticDate.getMonthDays(nowMonth));
        return monthEndDate.Format(DateFormat);
    },

    /*获得当天开始前一个月的开始日期*/
    getBeforeMonth: function (DateFormat) {
        var now = new Date();                    //当前日期
        var nowMonth = now.getMonth() - 1;           //当前月
        var nowYear = now.getFullYear();             //当前年
        var monthDate;
        if (nowMonth != -1) {
            monthDate = new Date(nowYear, nowMonth);
        } else {
            monthDate = new Date(nowYear - 1, 11);
        }
        return monthDate.Format(DateFormat);
    },

    /*获取最近一周开始时间*/
    getBeforeOneWeekStartDate: function (DateFormat) {
        var nowdate = new Date();
        return oneweekkdate = this.getTrunsAddDay(nowdate, -6, DateFormat);
    },

    /*获取三个月以内的起始时间*/
    getBeforeThreeMonthStartDate: function (DateFormat) {
        var nowdate = new Date();
        return threemonthdate = this.getTrunsAddDay(nowdate, -90, DateFormat);
    },

    /*获取一个月以内的起始时间*/
    getBeforeOneMonthStratDate: function (DateFormat) {
        var nowdate = new Date();
        return threemonthdate = this.getTrunsAddDay(nowdate, -29, DateFormat);
    }

}

DatePlugin.otherDate = {

    /*ISO8601*/
    parseISO8601:function(dateStringInRange) {
        var isoExp = /^\s*(\d{4})-(\d\d)-(\d\d)\s*$/,
            date = new Date(NaN), month,
            parts = isoExp.exec(dateStringInRange);

        if (parts) {
            month = +parts[2];
            date.setFullYear(parts[1], month - 1, parts[3]);
            if (month != date.getMonth() + 1) {
                date.setTime(NaN);
            }
        }
        return date;
    },

    /*处理日期格式兼容浏览器方法*/
    newDate:function(str) {
        str = str.split(‘-‘);
        var date = new Date();
        date.setUTCFullYear(str[0], str[1] - 1, str[2]);
        date.setUTCHours(0, 0, 0, 0);
        return date;
    }
}
 
时间: 2024-10-11 23:52:12

date.plugin.js 日期插件的相关文章

js日期插件

推荐一款贤心写的js日期插件,调用非常方便:顺手写了一个demo. 先列举下这款插件的优点:日期范围限制.开始日期设定.自定义日期格式.时间戳转换.当天的前后若干天返回.时分秒选择.智能响应.自动纠错.节日识别.快捷键操作.更换皮肤等. 当然还有很重要的一点是使用简单: 代码如下: <!DOCTYPE html> <html> <head>     <meta charset="UTF-8">     <title>data_

javascript Date format(js日期格式化)

方法一:这个很不错,好像是 csdn 的 Meizz 写的: // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) // 例子: // (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.4

js 日期插件 datepicker

点击图片出现  时间 ,增加一个点击事件 1 <label for="" class="width80">创建日:</label> 2 <div class="input-group"> 3 <div class="date"> 4 <?= Html::TextInput('search[begin_date]', 5 isset($searchParams['begin_

javascript Date format(js日期格式化) 转载

本文转载地址http://www.cnblogs.com/zhangpengshou/archive/2012/07/19/2599053.html // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) // 例子: // (new Date()).Format("yyyy-MM-dd hh

laydate JS日期插件

原文出处 简要介绍 你是时候换一款日期控件了,而layDate非常愿意和您成为工作伙伴.她致力于成为全球最用心的web日期支撑,为国内外所有从事web应用开发的同仁提供力所能及的动力.她基于原生JavaScript精心雕琢, 兼容了包括IE6在内的所有主流浏览器.她具备优雅的内部代码,良好的性能体验,和完善的皮肤体系,并且完全开源,你可以任意获取开发版源代码,一扫某些 传统日期控件的封闭与狭隘.layDate本着资源共享的开发者精神和对网页日历交互无穷的追求,延续了layui一贯的简单与易用.她

javascript Date format(js日期格式化) (转)

方法一:这个很不错,好像是 csdn 的 Meizz 写的: // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) // 例子: // (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.4

[荐]javascript Date format(js日期格式化)

cnblog:http://www.cnblogs.com/zhangpengshou/archive/2012/07/19/2599053.html 方法一: // 对Date的扩展,将 Date 转化为指定格式的String// 月(M).日(d).小时(h).分(m).秒(s).季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) // 例子: // (new Date()).Format("yyyy-MM-

validate.plugin.js 验证插件

/*编写时间:2015-6-4*/ (function ($) { $.fn.isValidate = function (obj) { if ($(this).val()!="") { var txt = $(this).val(); //表单元素:input } var reg; switch (obj) { case 0: reg = /-?\\d+/;/*匹配整数*/ return reg.test(txt); case 1: reg = /^\d+(\.\d+)?$/; /*

coding++ :javascript Date format (js日期格式化)

方式一: // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) // 例子: // (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 // (new Date()).Format(