一、定义日期
日期对象Date()对象是系统定义好的对象。Date()这是个构造函数。
var now=new Date()
二、常用方法
//获取特定格式的时间 now.getFullYear() // 获取完整的年份 2019 now.getMonth() //获取当前月份(0-11,0代表1月) now.getDate() //获取当前日(1-31) now.getDay() //获取当前星期X(0-6,0代表星期天) now.getTime() //获取当前时间(从1970.1.1开始的毫秒数) now.getHours() //获取当前小时数(0-23) now.getMinutes() //获取当前分钟数(0-59) now.getSeconds() //获取当前秒数(0-59) now.toLocaleDateString() //获取当前日期 "2019/12/16" //设置特定格式的时间 now.setTime() //以毫秒设置 Date 对象。 now.setFullYear() //设置年份。 now.setMonth(month, day) // 设置月份。 可用于设置月份中的某一天。 now.setDate() // 设置一个月的某一天。 now.setHours(hour, min, sec, millisec) // 设置指定的时间的小时字段。 该方法可用于设置分钟, 秒以及毫秒数。 now.setMinutes(min, sec, millisec) // 用于设置指定时间的分钟字段。 该方法同样可用于设置秒数与毫秒数。 now.setSeconds(sec, millisec) // 用于设置日期对象的秒字段。 可以用于设置毫秒数。 now.setMilliseconds() // 用于设置指定时间的毫秒字段。( 0 - 999) //转换为字符串 now.toString() now.toDateString() //返回日期的字符串形式 now.toTimeString() //返回时间的字符串形式。 now.toLocaleDateString() //返回一个字符串, 代表日期的当地写法 now.toLocaleTimeString() //返回一个字符串, 代表时间的当地写法 //比较日期 var myDate=new Date(); myDate.setFullYear(2008,8,9); var today = new Date(); if (myDate>today) { alert("Today is before 9th August 2008"); } else { alert("Today is after 9th August 2008"); }
三、注意事项
new Date(new Date(‘2016-04-12‘).getTime()); // Tue Apr 12 2016 08:00:00 GMT+0800 new Date(new Date(‘2016/04/12‘).getTime()); // Tue Apr 12 2016 00:00:00 GMT+0800 new Date(‘2014-01-01‘) // Wed Jan 01 2014 08:00:00 GMT+0800 (CST) new Date(‘2014-1-1‘) // Wed Jan 01 2014 00:00:00 GMT+0800 (CST)
四、案例
1.日期转为时间戳
var time1 = date.getTime(); var time2 = date.valueOf(); var time3 = Date.parse(date); //第一、第二种:会精确到毫秒,第三种:只能精确到秒,毫秒用000替代
2. 时间戳转日期
function getdate() { var now = new Date(), y = now.getFullYear(), m = now.getMonth() + 1, d = now.getDate(); return y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d) + " " + now.toTimeString().substr(0, 8); }
3.n天前的日期
function getdateBefore(n){ var lastDate = new Date(new Date() - 1000 * 60 * 60 * 24 * n), lastY = lastDate.getFullYear(), lastM = lastDate.getMonth() + 1, lastD = lastDate.getDate(); return lastY + "-" + (lastM < 10 ? "0" + lastM : lastM) + "-" + (lastD < 10 ? "0" + lastD : lastD);//得到30天前的时间 }
4.时间
function formatSeconds(value) { var theTime = parseInt(value);// 秒 var middle= 0;// 分 var hour= 0;// 小时 if(theTime > 60) { middle= parseInt(theTime/60); theTime = parseInt(theTime%60); if(middle> 60) { hour= parseInt(middle/60); middle= parseInt(middle%60); } } var result = ""+parseInt(theTime)+"秒"; if(middle > 0) { result = ""+parseInt(middle)+"分"+result; } if(hour> 0) { result = ""+parseInt(hour)+"小时"+result; } return result; }
5.倒计时
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body onload="countTime()"> <div> <span id="dayDate">00</span> <span id="hourDate">00</span> <span id="minuteDate">00</span> <span id="secondDate">00</span> </div> <script type="text/javascript"> function countTime() { //获取当前时间 var date = new Date(); var now = date.getTime(); //设置截止时间 var str="2019/12/18 16:50:03"; var endDate = new Date(str); var end = endDate.getTime(); //时间差 var timeGap = end-now; //定义变量 d,h,m,s保存倒计时的时间 var d,h,m,s; if (timeGap>=0) { d = Math.floor(timeGap/1000/60/60/24); h = Math.floor(timeGap/1000/60/60%24); m = Math.floor(timeGap/1000/60%60); s = Math.floor(timeGap/1000%60); //递归每秒调用countTime方法,显示动态时间效果 setTimeout(countTime,1000);//计时器 } else { d = 0; h = 0; m = 0; s = 0; } //将倒计时赋值到div中 document.getElementById("dayDate").innerHTML = d+"天"; document.getElementById("hourDate").innerHTML = h+"时"; document.getElementById("minuteDate").innerHTML = m+"分"; document.getElementById("secondDate").innerHTML = s+"秒"; } </script> </body> </html>
6.时钟
<html> <head> <script type="text/javascript"> function startTime() { var today=new Date() var h=today.getHours() var m=today.getMinutes() var s=today.getSeconds() // add a zero in front of numbers<10 m=checkTime(m) s=checkTime(s) document.getElementById(‘txt‘).innerHTML=h+":"+m+":"+s t=setTimeout(‘startTime()‘,500) } function checkTime(i) { if (i<10) {i="0" + i} return i } </script> </head> <body onload="startTime()"> <div id="txt"></div> </body> </html>
原文:https://www.cnblogs.com/xiao-xi-z/p/12050294.html