//时间戳格式化
1 、function timestampToTime(timestamp) {
var date = new Date(timestamp * 1000);//时间戳为10位需*1000,时间戳为13位的话不需乘1000
var Y = date.getFullYear() + '-';
var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '月';
var D = date.getDate() + '日 ';
var h = date.getHours() + ':';
var m = date.getMinutes();
var s = date.getSeconds();
return Y+M+D+h+m+s;
return M+D+h+m;
};
2、 function formatSeconds(value) {
var secondTime = parseInt(value);// 秒
var minuteTime = 0;// 分
var hourTime = 0;// 小时
if(secondTime > 60) {//如果秒数大于60,将秒数转换成整数
//获取分钟,除以60取整数,得到整数分钟
minuteTime = parseInt(secondTime / 60);
//获取秒数,秒数取佘,得到整数秒数
secondTime = parseInt(secondTime % 60);
//如果分钟大于60,将分钟转换成小时
if(minuteTime > 60) {
//获取小时,获取分钟除以60,得到整数小时
hourTime = parseInt(minuteTime / 60);
//获取小时后取佘的分,获取分钟除以60取佘的分
minuteTime = parseInt(minuteTime % 60);
}
}
var result = "" + parseInt(secondTime) + "秒";
if(minuteTime > 0) {
result = "" + parseInt(minuteTime) + "分" + result;
}
if(hourTime > 0) {
result = "" + parseInt(hourTime) + "小时" + result;
}
return result;
};
3、倒计时
(1)、第一种
<!DOCTYPE html>
<html>
<head>
<meta charset=
"utf-8"
>
<title>www.jb51.net JS倒计时</title>
</head>
<body>
<div id=
"div"
></div>
<script type=
"text/javascript"
>
window.onload=clock;
function
clock(){
var
today=
new
Date(),
//当前时间
h=today.getHours(),
m=today.getMinutes(),
s=today.getSeconds();
var
stopTime=
new
Date(
"Feb 9 2019 00:00:00"
),
//结束时间
stopH=stopTime.getHours(),
stopM=stopTime.getMinutes(),
stopS=stopTime.getSeconds();
var
shenyu=stopTime.getTime()-today.getTime(),
//倒计时毫秒数
shengyuD=parseInt(shenyu/(60*60*24*1000)),
//转换为天
D=parseInt(shenyu)-parseInt(shengyuD*60*60*24*1000),
//除去天的毫秒数
shengyuH=parseInt(D/(60*60*1000)),
//除去天的毫秒数转换成小时
H=D-shengyuH*60*60*1000,
//除去天、小时的毫秒数
shengyuM=parseInt(H/(60*1000)),
//除去天的毫秒数转换成分钟
M=H-shengyuM*60*1000;
//除去天、小时、分的毫秒数
S=parseInt((shenyu-shengyuD*60*60*24*1000-shengyuH*60*60*1000-shengyuM*60*1000)/1000)
//除去天、小时、分的毫秒数转化为秒
document.getElementById(
"div"
).innerHTML=(shengyuD+
"天"
+shengyuH+
"小时"
+shengyuM+
"分"
+S+
"秒"
+
"<br>"
);
// setTimeout("clock()",500);
setTimeout(clock,500);
}
</script>
</body>
</html>
(2)、第二种
<!DOCTYPE html>
<html lang=
"en"
>
<head>
<meta charset=
"UTF-8"
>
<title>www.jb51.net js倒计时</title>
<style>
*{
margin: 0;
padding:0;
}
p {
font-size: 80px;
text-align: center;
}
p span {
color: red;
}
p span.time {
color: black
}
body{padding-top:200px;}
</style>
</head>
<body>
<p>距离2019年还有</p>
<p><span></span></p>
<script>
var
oSpan = document.getElementsByTagName(
'span'
)[0];
function
tow(n) {
return
n >= 0 && n < 10 ?
'0'
+ n :
''
+ n;
}
function
getDate() {
var
oDate =
new
Date();
//获取日期对象
var
oldTime = oDate.getTime();
//现在距离1970年的毫秒数
var
newDate =
new
Date(
'2019/1/1 00:00:00'
);
var
newTime = newDate.getTime();
//2019年距离1970年的毫秒数
var
second = Math.floor((newTime - oldTime) / 1000);
//未来时间距离现在的秒数
var
day = Math.floor(second / 86400);
//整数部分代表的是天;一天有24*60*60=86400秒 ;
second = second % 86400;
//余数代表剩下的秒数;
var
hour = Math.floor(second / 3600);
//整数部分代表小时;
second %= 3600;
//余数代表 剩下的秒数;
var
minute = Math.floor(second / 60);
second %= 60;
var
str = tow(day) +
'<span class="time">天</span>'
+ tow(hour) +
'<span class="time">小时</span>'
+ tow(minute) +
'<span class="time">分钟</span>'
+ tow(second) +
'<span class="time">秒</span>'
;
oSpan.innerHTML = str;
}
getDate();
setInterval(getDate, 1000);
</script>
</body>
</html>
4、倒计时cookie存储(刷新不会重新倒计时)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS倒计时(无视刷新)</title>
</head>
<body>
<a class="fasong" id="btnSend" style="cursor:pointer;">60分钟</a>
</body>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.js"></script>
<script language="javascript">
$(function() {
//点击发送验证码
// $('body').on('click', '#btnSend', function() {
// $('body').off('click', '#btnSend');
LockButton('#btnSend', 3600);
// })
//读取cookie
if($.cookie("djsendtime") != undefined && !isNaN($.cookie("djsendtime"))) { //读取到了cookie值
var djsendtime = $.cookie("djsendtime");
var now = new Date().getTime(); //当前时间戳
var locksecends = parseInt((djsendtime - now) / 1000);
if(locksecends <= 0) {
$.cookie("djsendtime", null);
} else {
LockButton('#btnSend', locksecends);
}
}
})
function formatSeconds(value) {
var secondTime = parseInt(value);// 秒
var minuteTime = 0;// 分
var hourTime = 0;// 小时
if(secondTime > 60) {//如果秒数大于60,将秒数转换成整数
//获取分钟,除以60取整数,得到整数分钟
minuteTime = parseInt(secondTime / 60);
//获取秒数,秒数取佘,得到整数秒数
secondTime = parseInt(secondTime % 60);
//如果分钟大于60,将分钟转换成小时
if(minuteTime > 60) {
//获取小时,获取分钟除以60,得到整数小时
hourTime = parseInt(minuteTime / 60);
//获取小时后取佘的分,获取分钟除以60取佘的分
minuteTime = parseInt(minuteTime % 60);
}
}
var result = "" + parseInt(secondTime) + "秒";
if(minuteTime > 0) {
result = "" + parseInt(minuteTime) + "分" + result;
}
if(hourTime > 0) {
result = "" + parseInt(hourTime) + "小时" + result;
}
return result;
}
// 按钮倒计时
var LockButton = function(btnObjId, locksecends) {
//btnObjId事件
//1.获取当前系统时间
//2.获取 locksecends 后的系统时间
//3.用cookie保存到期时间
//4.每次加载后获取cookie中保存的时间
//5.用到期时间减去当前时间获取倒计时
var djsendtime = $.cookie("djsendtime");
if(djsendtime == null || djsendtime == undefined || djsendtime == 'undefined' || djsendtime == 'null') {
var now = new Date().getTime(); //当前时间戳
var endtime = locksecends * 1000 + now; //结束时间戳
$.cookie("djsendtime", endtime); //将结束时间保存到cookie
}
$(btnObjId).text(formatSeconds(locksecends));
// $('body').off('click', '#btnSendSMS');
var timer = setInterval(function() {
locksecends--;
$(btnObjId).text(formatSeconds(locksecends));
if(locksecends <= 0) {
//倒计时结束清除cookie值
$.cookie("djsendtime", null);
// $(btnObjId).removeClass('disabled').removeAttr('disabled').text('重新获取');
// $('body').on('click', btnObjId);
clearInterval(timer);
}
}, 1000);
};
</script>
</html>