欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

js格式化时间函数

程序员文章站 2022-03-09 23:31:09
...
new Date(23455212542)   ///用时间戳生成时间的时候里面用到的值一定要是Number
new Date("2019/11/11 11:11:11")   ///这里一定要用这种格式,否则iPhone下会报错



// 当前时间的函数
        function getNowFormatDate(param) {
            var date = new Date();
            var seperator1 = "-";
            var seperator2 = ":";
            var seperator3 = '+';
            var y = date.getFullYear();
            var m = date.getMonth() + 1;
            var d = date.getDate();
            var h = date.getHours();
            var i = date.getMinutes();
            var s = date.getSeconds();
            if (m >= 1 && m <= 9) {
                m = "0" + m;
            }
            if (d >= 0 && d <= 9) {
                d = "0" + d;
            }
            if(param== 'ymd'){
                var currentdate = y + seperator1 + m + seperator1 + d;
            }else{
                var currentdate = y + seperator1 + m + seperator1 + d
                    + seperator3 + h + seperator2 + i
                    + seperator2 + s;
            }
            return currentdate;
        }


当然,如果对时间的格式没有特殊的要求,只要获取当前的时间的字符串的话可以这样

var d=new Date();
var n=d.toJSON();   //2017-09-15T07:14:10.903Z


Date(日期)型字符串,要想正确的转换为Date(日期)对象,必须用new Date(str)方式,直接用Date(str)强制转换将得到错误结果,另外转换时Date字符串的格式为"年/月/日"(也许还有其它写法,这里只测试了yyyy/mm/dd确实是可行的),而另一种很常见的"年-月-日"的表示方式,转换后将得到错误结果(ie下不支持呢,推荐使用下面的方法)

var a = '2017-12-12 12:12:12'

a.replace(/-/g,'/')    可以这样替换一下

var a = Date.parse("2009/04/22 16:30");

new Date("2009/04/22 16:30")都可以


时间差函数

function dateDown(data){
            var toTime = new Date(data);
            var now = new Date()*1;

            var cha = toTime - now;
            var h = Math.floor(cha / 1000 / 60 / 60 % 24); 
            // var m = Math.floor(cha - Math.floor(cha/1000/60/60));
            var m = Math.floor(cha / 1000 / 60 % 60);
            var s = Math.floor(cha / 1000 % 60);
            var ms = (cha%1000+'').slice(0,2);
            // console.log(document.getElementById("time"))
            if(h<0){h="00";}
            if(m<0){m="00"}
            if(s<0){s="00"}
            if(ms<0){ms="00"}
            if(h<10){h="0"+h;}
            if(m<10){m="0"+m;}
            if(s<10){s="0"+s;}
            if(ms<10){ms="0"+ms;}
            document.getElementById("time").innerHTML =toTime+"===="+ h+':'+m +':'+s+':'+ ms;
            // console.log(cha)
        }
        setInterval(function(){

            dateDown("2019/11/11 11:11:11")   ////iphone下时间固定为这个格式否则会发生错误
        },30)
固定时间差实现方法(时间轮巡 )
var cha;  
        var toTime = new Date('2018/05/13 17:17:00');  ////iphone下时间固定为这个格式否则会发生错误  
        function dateDown(cha){  
            var h = Math.floor(cha / 1000 / 60 / 60 % 24);   
            // var m = Math.floor(cha - Math.floor(cha/1000/60/60));  
            var m = Math.floor(cha / 1000 / 60 % 60);  
            var s = Math.floor(cha / 1000 % 60);  
            var ms = (cha%1000+'').slice(0,2);  
            // console.log(document.getElementById("time"))  
            if(h<0){h="00";}  
            if(m<0){m="00"}  
            if(s<0){s="00"}  
            if(ms<0){ms="00"}  
            if(h<10){h="0"+h;}  
            if(m<10){m="0"+m;}  
            if(s<10){s="0"+s;}  
            if(ms<10){ms="0"+ms;}  
            document.getElementById("time").innerHTML ="===="+ h+':'+m +':'+s+':'+ ms;  
            // console.log(cha)  
        }  
        function timeCalc(toTime){
            var now = new Date();  
            cha= toTime - now;
            if(cha<=0 || !cha){
                var newCha = Math.ceil((now*1 - toTime*1)/(1000*60*60*24))
                toTime =toTime*1 + 24*60*60*1000 * newCha
            }
            console.log(toTime)
            console.log(now*1)
            cha= toTime - now;

            return cha;
        }
        setInterval(function(){  
            
            dateDown(timeCalc(toTime))   
        },100)