• js 时间加减


    js 方面时间时区相关部分:

    时区的定义

    var tz_offset={
        'east0':0,
        'east1':1,
        'east2':2,
        'east3':3,
        'east4':4,
        'east5':5,
        'east6':6,
        'east7':7,
        'east8':8,
        'east9':9,
        'east10':10,
        'east11':11,
        'east12':12,
        'west1':-1,
        'west2':-2,
        'west3':-3,
        'west4':-4,
        'west5':-5,
        'west6':-6,
        'west7':-7,
        'west8':-8,
        'west9':-9,
        'west10':-10,
        'west11':-11,
        'west12':-12,
        'Asia/Shanghai':"8"
    };

    在日期上进行偏移:

    1.

    Date.prototype.addHours = function(h)
    {//h可以是数字,如果为数字表示小时,可以为字符串,表示为 数字小时.数字分钟.数字秒,h可以是正数,也可以为负数
        if (typeof(h)=="string") {
            num_symbol="";
            if (h[0]=='-'){//如果h为负数的字符串,则符号为-,值为后面字符串
                num_symbol="-";
                h= h.substr(1);
            }
            var pattern =/d+/g;
            number_list= h.match(pattern);//获取数字列表
            _hour=0;
            _minute=0;
            _seconds=0;
            if (number_list.length>0){
                _hour=parseInt(num_symbol+number_list[0]);
            }
            if (number_list.length>1){
                _minute=parseInt(num_symbol+number_list[1]);
            }
            if (number_list.length>2){
                _seconds=parseInt(num_symbol+number_list[2]);
            }
            this.setHours(this.getHours()+_hour,this.getMinutes()+_minute,this.getSeconds()+_seconds);
        }
        else {//如果h非字符串而是单个数字,表示小时
            this.setHours(this.getHours()+parseInt(h),this.getMinutes(),this.getSeconds());
        }
    };

     2.

    Date.prototype.addHours = function(h)
    {//h可以是数字,如果为数字表示小时,可以为字符串,表示为 数字小时.数字分钟.数字秒,h可以是正数,也可以为负数
        var timestamp=Date.parse(this);
        timestamp=timestamp+parseInt(h)*60*60*1000;
        newdate=new Date()
        newdate.setTime(timestamp)
        return newdate
    };

    以字符串格式输出日期,并且加上时区的定义

    Date.prototype.format = function(fmt,tz)
    { //author: meizz
        //如果没有tz时区指示符号,则使用本地时区
        if (!tz){
            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()             //毫秒
            };
        }
        else{
            tz_time=this.addHours(tz_offset[tz]);
            var o = {
                "M+" : tz_time.getUTCMonth()+1,                 //月份
                "d+" : tz_time.getUTCDate(),                    //
                "h+" : tz_time.getUTCHours(),                   //小时
                "m+" : tz_time.getUTCMinutes(),                 //
                "s+" : tz_time.getUTCSeconds(),                 //
                "q+" : Math.floor((tz_time.getUTCMonth()+3)/3), //季度
                "S"  : tz_time.getUTCMilliseconds()             //毫秒
            };
        }
        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;
    } ;
  • 相关阅读:
    [轉]Discuz!NT 数据库读写分离方案
    [轉]最流行的PHP MVC框架
    [轉]关于MS SQL的执行计划
    [轉]Oracle读写分离架构
    [轉]資料庫讀寫分離
    [轉]SQL Server 老是死锁,或提示进程已牺牲,怎麽解决
    [轉]让IIS支持解析json
    [轉]jquery.validate全攻略
    [轉]Flex判断对象的类型
    [轉]mssql 数据表修复方法
  • 原文地址:https://www.cnblogs.com/yasmi/p/4971004.html
Copyright © 2020-2023  润新知