之前做了一个js获取站点时间的版本,后来想了一下,发现,分别去计算年,月,日,在去减去设置好的年,月,日,获取时间差的方法不太严谨,因为有时会出现月份大于当前月份,减去会产生负值,同时又要用12个月减去建立月份加上当前月份获取绝对值,60进制,24进制,30进制等情况,需要进一步换算,比较麻烦。

所以改成了下面这个版本,获取毫秒级别的时间差,去除以年份值,取余数,除以月份值,取余数,除以天数值,取余数.....最终获得今准到年月日的时差,同时没秒刷新一次,就好了。

<script type="text/javascript">
function siteruntime(sj,id) {
    setInterval(function () {
    var minutes = 1000 * 60;
    var hours = minutes * 60;
    var days = hours * 24;
    var yues = hours*30.416;
    var years = days * 365;
    var d = Date.parse(sj);
    var time = new Date();
    f=time.getTime();
    st=f-d;//和当前时间的时差,毫秒数
    nian=Math.floor(st/years);
    yue=Math.floor((st%years)/yues);
    ri=Math.floor((st%yues)/days);
    shi=Math.floor((st%days)/hours);
    feng=Math.floor((st%hours)/minutes);
    miao=Math.floor((st%minutes)/1000);
    $(id).empty().append('该站点已经成功装逼'+nian+'年'+yue+'月'+ri+'天'+shi+'小时'+feng+'分钟'+miao+'秒');//写入文档class=p13的节点
    },1000);
    };
siteruntime("9/3/2015",'#p13');
</script>

效果展示:

123