时间换算的问题!!!!!!!!!!

图片说明

时间换算 一天24个小时 比如说2016-12-31 23:50:50 这个加上2小时 要变小时 变天 变月份 变年 还有就是减的时候 2016-1-1 0:00 减去2小时 也要都变 我想问的是 我下面中的代码逻辑 是不是写错了 错在那里 求指导

对了 北京时间是utc +8 那 utc+3.5 是小时+3 分钟 +5 还是+30 还是什么

你应该整一个相对于UTC的时间差数据,计算下就行了,

 //记录相对于时间差,键值hour表示小时,minute分钟,second秒
 //其他国家的按照中国的这种格式补充,没有秒,分钟数据就去掉
    var TimeSpan = { 中国: { hour: 8 ,minute:5,second:12} };
    function ComputeTime() {
        var d = new Date();
        var sUTC = d.getUTCFullYear() + '/' + (d.getUTCMonth() + 1) + '/' + d.getUTCDate() + ' ' + d.getUTCHours() + ':' + d.getUTCMinutes() + ':' + d.getUTCSeconds();//UTC时间对象

        for (var attr in TimeSpan) {//计算此国家时间并且更新TimeSpan存储的键值为时间对象
            d = new Date(sUTC);//重新生成UTC时间
            var ts = TimeSpan[attr];
            for (var attr1 in ts) {
                switch (attr1) {
                    case 'hour': d.setHours(d.getHours() + ts[attr1]); break;
                    case 'minute': d.setMinutes(d.getMinutes() + ts[attr1]); break;
                    case 'second': d.setSeconds(d.getSeconds() + ts[attr1]); break;
                }
            }
            TimeSpan[attr] = d;//更新键值为时间对象,之后直接操作这个对象
        }
        TimeSpan.UTC = new Date(sUTC);
    }
    ComputeTime();
    document.write('<div id="div"></div>');
    function updateDiv(isInit) {
        var s = '',d;
        for (var attr in TimeSpan) {
            d = TimeSpan[attr];
            if (isInit !== true) d.setSeconds(d.getSeconds() + 1);
            s += attr + ':' + d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate() + ' ' + d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds()+'<br/>';
        }
        document.getElementById('div').innerHTML = s;
    }
    updateDiv(true);
    setInterval(updateDiv,1000);

js

function updateDate()
    {

if(d.getUTCHours() <0 ){ 
            d.getUTCHours() + 23
            d.getUTCDate() - 1
            }else if(d.getUTCHours() > 24){
                d.getUTCDate() + 1
                d.getUTCHours() - 24
                }else if(d.getUTCDate() > 31){
                    d.getUTCMonth()+1
                    }else if(d.getUTCMonth() >12){
                        d.getUTCFullYear()+ 1
                        }
        var d = new Date();
        //巴黎时间
        $("#time19").val(d.getUTCFullYear()+"年"+ (d.getUTCMonth()+ 1)+"月"+ d.getUTCDate()+"日 "+ (d.getUTCHours()+ 1)+":"+ d.getUTCMinutes()+":"+ d.getUTCSeconds());
        //伦敦时间
        $("#time20").val(d.getUTCFullYear()+"年"+ (d.getUTCMonth()+ 1)+"月"+ d.getUTCDate()+"日 "+ d.getUTCHours()+":"+ d.getUTCMinutes()+":"+ d.getUTCSeconds());
        //渥太华时间
        $("#time21").val(d.getUTCFullYear()+"年"+ (d.getUTCMonth()+ 1)+"月"+ d.getUTCDate()+"日 "+ (d.getUTCHours() - 5)+":"+ d.getUTCMinutes()+":"+ d.getUTCSeconds());
        //墨西哥城时间
        $("#time22").val(d.getUTCFullYear()+"年"+ (d.getUTCMonth()+ 1)+"月"+ d.getUTCDate()+"日 "+ (d.getUTCHours()- 6)+":"+ d.getUTCMinutes()+":"+ d.getUTCSeconds());
        //纽约时间
        $("#time23").val(d.getUTCFullYear()+"年"+ (d.getUTCMonth()+ 1)+"月"+ d.getUTCDate()+"日 "+ (d.getUTCHours()- 5)+":"+ d.getUTCMinutes()+":"+ d.getUTCSeconds());
        //芝加哥时间
        $("#time24").val(d.getUTCFullYear()+"年"+ (d.getUTCMonth()+ 1)+"月"+ d.getUTCDate()+"日 "+ (d.getUTCHours()- 6)+":"+ d.getUTCMinutes()+":"+ d.getUTCSeconds());
        //洛杉矶时间
        $("#time25").val(d.getUTCFullYear()+"年"+ (d.getUTCMonth()+ 1)+"月"+ d.getUTCDate()+"日 "+ (d.getUTCHours()- 8)+":"+ d.getUTCMinutes()+":"+ d.getUTCSeconds());


    }
    window.onload = function()
    {
        setInterval(updateDate, 1000);
    }