js对时间的各种处理

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/liuxin_1991/article/details/83994023

//时间戳格式化
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>

猜你喜欢

转载自blog.csdn.net/liuxin_1991/article/details/83994023
今日推荐