关于JavaScript获取时间函数及实现倒计时
JavaScript获取当前时间函数
var time=new Date()
获取时间函数
Date() 返回当日的日期和时间。
getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。
getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。
getMonth() 从 Date 对象返回月份 (0 ~ 11)。
getFullYear() 从 Date 对象以四位数字返回年份。
getYear() 请使用 getFullYear() 方法代替。
getHours() 返回 Date 对象的小时 (0 ~ 23)。
getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。
getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。
getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。
getTime() 返回 1970 年 1 月 1 日至今的毫秒数。
特别地, getDay() 返回的周是(0~6)
getMonth() 返回的是(0~11)
同理,下面的set函数亦是如此:
特别地,setMonth(0)表示将日期设置为上个月的最后一天
设置时间函数
setDate() 设置 Date 对象中月的某一天 (1 ~ 31)。
setMonth() 设置 Date 对象中月份 (0 ~ 11)。
setFullYear() 设置 Date 对象中的年份(四位数字)。
setYear() 请使用 setFullYear() 方法代替。
setHours() 设置 Date 对象中的小时 (0 ~ 23)。
setMinutes() 设置 Date 对象中的分钟 (0 ~ 59)。
setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59)。
setMilliseconds() 设置 Date 对象中的毫秒 (0 ~ 999)。
setTime() 以毫秒设置 Date 对象。
日期的格式转化
toSource() 返回该对象的源代码。
toString() 把 Date 对象转换为字符串。
toTimeString() 把 Date 对象的时间部分转换为字符串。
toDateString() 把 Date 对象的日期部分转换为字符串。
toGMTString() 请使用 toUTCString() 方法代替。
toUTCString() 根据世界时,把 Date 对象转换为字符串。
toLocaleString() 根据本地时间格式,把 Date 对象转换为字符串。
toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。
toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串。
小案例:倒计时
在页面上出现一个倒计时
1. 获取两个时间节点之间的时间差
1-1. 准备两个时间节点
1-2. 使用 timeDiff 方法获取两个时间节点之间的时间差
2. 写一个定时器, 每间隔一秒钟执行一次
2-1. 书写一个间隔定时器 setInterval()
2-2. 哪些代码写在定时器里面
每间隔一秒钟获取一次当前时间
每间隔一秒钟计算一次时间差
每间隔一秒钟写入页面一次
3. 把得到的时间差写入页面里面
3-1. 组装一个 html 格式的字符串
<span>1天</span><span>1小时</span><span>1分钟</span><span>1秒钟</span>
3-2. 获取页面中现在存在的 p 标签
3-3. 把我组装好的字符串使用 innerHTML 属性写入到 p 标签内
HTML代码
<div class="box">
<h3>距离明天放学还有 : </h3>
<p class="time">
</p>
</div>
JavaScript代码
var time1 = new Date('2020-5-24 12:50:33')
// var time2 = new Date()
// 1-2. 获取时间差
// var res = fn(time1)
// console.log(res)
// 3-2. 获取 p 标签
var p = document.querySelector('div p')
// 2-1. 书写一个定时器
setInterval(function () {
// 这里的代码才会每间隔一秒执行一次
// 2-2. 获取时间差
var res = fn(time1)
// 3. 写入页面里面
// 3-1. 每间隔一秒都要组装一次最新的字符串
var str = '<span>' + res.day + '天</span><span>' + res.hours + '小时</span><span>' + res.minutes + '分钟</span><span>' + res.seconds + '秒钟</span>'
// 3-2. 获取 p 元素, 因为不需要每间隔一秒都获取一次
// 所以这段代码写在定时器外面
// 3-3. 因为每间隔一秒都要覆盖式的写入一次
// 要在这里把我们准备好的 str 写入 p 标签内容
p.innerHTML = str
}, 1000)
获取时间戳的函数代码
function fn(time1){
var a=new Date()
b=Math.floor(Math.abs(a.getTime()-time1.getTime())/1000)//毫秒
var day = Math.floor( b / (60 * 60 * 24) )//天
var hours = Math.floor(b % (60 * 60 * 24) / (60 * 60) )//小时
var minutes = Math.floor( b % (60 * 60) / 60 )//分钟
var seconds = b % 60//秒
var obj={}
obj.day=day
obj.hours = hours
obj.minutes = minutes
obj.seconds = seconds
return obj
}