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)