js 日报 周报 月报 时间扩展 js

当初做统计业务需要处理时间 周报:本周 上周 下周 近一周    月报上月 本月  等 需要使用时间处理 所以扩展了这些方法 

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>

</body>
</html>
<script type="text/javascript">
    var _DateTostring = Date.prototype.toString;
    Date.prototype.add = function (type, value) {
        if (!type || value==undefined||value==null || isNaN(value)) {
            throw "增加的类型不存在或者值不是一个数字"
        }
        switch (type) {
            case "d":
            case "D":
                this.setDate(this.getDate() + value);
                break
            case "M":
            case "m":
                this.setMonth(this.getMonth() + value);
                break;
            case "Y":
            case "y":
                this.setFullYear(this.getFullYear() + value);
                break;
            case "day":
            case "DAY":
                //本周的第几天
                var day =this.getDay()==0?7:this.getDay();

                var i = Math.abs(value);
                if (value == 0) {

                    this.addDate(-(day-1));//本周
                    return;
                }
                value < 0 ? this.addDate(-(day + 7 * i - 1)) : i > 1 ? this.addDate(7 - day + ((i - 1) * 7)+1) : this.addDate(7 - day+1);

                break;
        }
        var date = this;
        return date;
    }
    Date.prototype.addDate = function (value) {
        this.add("d", value);
    }
    Date.prototype.addMonth = function (value) {
        this.add("m", value);
    }
    Date.prototype.addDay = function (value) {
        this.add("day", value);
    }
    Date.prototype.addYear = function (value) {
        this.add("y", value);
    }
    Date.prototype.toString = function (fmt) {
        if (fmt == undefined) {
            return _DateTostring.call(this);
        }
        var o = {
            "M+": this.getMonth() + 1, //月份
            "d+": this.getDate(), //日
            "h+": this.getHours(), //小时
            "m+": this.getMinutes(), //分
            "s+": this.getSeconds(), //秒
            "q+": Math.floor((this.getMonth() + 3) / 3), //季度
            "S": this.getMilliseconds() //毫秒
        };
        if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
        for (var k in o)

            if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
        return fmt;
    }
    var date = new Date();
    //date.addDate(1);//当前时间基础加上12天
    //date.addDate(-1);//当前时间基础减去12天
    //date.addMonth(-1);//当前时间基础减去1月
    //date.addMonth(1);//当前时间基础加上一月
    //date.addYear(1);//当前时间基础加上一年
    //date.addYear(-1);//当前时间基础减去一年
    //date.addDay(-1);//上周
    //date.addDay(-2);//前2周
    //date.addDay(0);//本周
    //console.log(date.toString("yyyy-MM-dd"));//格式化日期
   // console.log(date.toString());
   // date.addDay(-1);//下周

</script>
时间: 2024-10-26 20:31:36

js 日报 周报 月报 时间扩展 js的相关文章

从js的repeat方法谈js字符串与数组的扩展方法

js将字符串重复N次的repeat方法的8个版本 /* *@desc: 将一个字符串重复自身N次 */ //版本1:利用空数组的join方法 function repeat(target, n) { return (new Array(n + 1)).join(target); } //版本2:之所以要创建一个带length属性的对象 是因为要调用数据的原型方法,需要指定call的第一个参数为类数组对象 //类数组对象的必要条件是其length属性的值为非负数 function repeat(t

JS组件系列——自己动手扩展BootstrapTable的 冻结列 功能:彻底解决高度问题

前言:一年前,博主分享过一篇关于bootstrapTable组件冻结列的解决方案  JS组件系列——Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案 ,通过该篇,确实可以实现bootstrapTable的冻结列效果,并且可以兼容ie浏览器.这一年的时间,不断有园友以及群里面的朋友问过我关于固定高度之后,冻结列页面效果不能对齐的问题,奈何博主太忙,一直没有抽空将这个问题优化.最近项目里面也不断有人提过这个bug,这下子不能再推了,必须要直面“惨淡的bug”,于是昨天利用一天的

JS(获得当前时间并且用2015-01-01格式表示)

一个简单的小例子,实现获得当前时间,js代码如下: function getdate() {var date = new Date();var mon = date.getMonth()  + 1;         //getMonth()返回的是0-11,则需要加1if(mon <=9){                                     //如果小于9的话,则需要加上0mon = "0" + mon;}var day = date.getDate(); 

js计算两个时间相差的天数

day1='2014-03-31 00:00:01'; function get_day(day1,day2){ var s = day1; var dt = Date.parse(s.replace(/-/g,"/")); var day1 = new Date(dt); var s = day2; var dt = Date.parse(s.replace(/-/g,"/")); var day2 = new Date(dt); var date3=day1.g

js简单显示动态时间点

<input type="text" id="showtime" redayonly="redayonly" /> <script> function nowGetTime(){ var date=new Date(); document.getElementById("showtime").value=date.getFullYear()+"-"+(date.getMonth()+

js 获取当前的时间

第一个小程序,用js获取当前的时间,,比较特殊的是 月是从0开始算的,显示的时候要加1,获取日用getDate(),获取周 getDay(), 直接上代码 1 <!DOCTYPE html> 2 <html> 3 <body> 4 5 <p>点击下面的按钮来显示今天的日期:</p> 6 7 <button onclick="myFunction()">点击这里</button> 8 9 <p id

我的前端架构之一--统一扩展Js方法

我的前端架构汇总 MyJs_Core.js 这是一个核心的Js文件,它扩展了原生的Js方法.如下: Array对象: 1) indexOf 2) max 3) min 4) removeAt 5) insertAt 6) remove 7) intersect 8) minus 9) Recursion 10) last 11) distinct 12) to 13) addArray String对象: 1) indexFrom:不区分大小写进行查找. 2) format: 使用索引进行参数化

js new Date() 获取时间

js new Date() 获取时间 Date 对象用于处理日期和时间.创建 Date 对象的语法:var myDate=new Date()Date 对象会自动把当前日期和时间保存为其初始值.参数形式有以下5种: new Date("month dd,yyyy hh:mm:ss");new Date("month dd,yyyy");new Date(yyyy,mth,dd,hh,mm,ss);new Date(yyyy,mth,dd);new Date(ms);

js中获得当前时间是年份和月份

js中获得当前时间是年份和月份,形如:201208       //获取完整的日期 var date=new Date; var year=date.getFullYear();  var month=date.getMonth()+1; month =(month<10 ? "0"+month:month);  var mydate = (year.toString()+month.toString()); 注意,year.toString()+month.toString()