第一.js的日期
js的日期是用内置对象Date来操作,首先先创建一个日期 var date=new Date();,然后就可以调用它的API来获取年月日、时分秒等等,这不是本文重点,本文重点讲如何把一串有特殊意义的字符串或者数字转变为日期类型。
最常用的方法是 var date=new Date("2016/09/05 09:08:03");
前面的年月日用斜杠相隔,后面的时分秒还是用冒号相隔,把我们的日期数据拼接成这样的字符串后就可以了。当然,时分秒这一部分可以去掉,到时候产生的日期对象的时分秒数据都会是00。即 var date=new Date("2016/09/05"); 也是可以的。
第二.js的定时器
1.每隔多少时间就执行一次操作的定时器:
setInterval()方法,由window调用,window可以省略。有两个参数,第一个参数是函数名,有两种写法,第一种是直接函数名,不带括号,第二种写法是函数名,带括号,同时用引号扩住,当做字符串类型参数。第二个参数是定时器的时间间隔,即多少时间调用一次函数,以毫秒为单位。其中第一个参数我们推荐使用第二种写法,即带括号,用引号扩住。这样我们能很直观的发现这是个函数,否则不带括号,还以为是个变量呢。示例:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<body>
<div id="timeDiv"></div>
<script>
var timeDiv = document.getElementById("timeDiv");
function writeTime() {
var date = new Date();
var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
timeDiv.innerHTML = hours + ':' + minutes + ':' + seconds;
}
setInterval("writeTime()", 1000);
</script>
</body>
</html>
上面示例每隔1秒在页面上输出当前时间。
清除定时器方法:setInterval(),方法需要传一个参数。如果要清除某个定时器,则要在定义定时器的时候赋值给一个变量,清除定时器方法传的参数就是这个变量。
如要清除上例中的定时器,则要修改代码如下:
var timeInterval = setInterval("writeTime()", 1000);
/*业务代码省略*/
clearInterval(timeInterval);
2.一段时间之后执行某操作的定时器:
用例:
setTimeout("writeTime()", 5000);
上例是5s后执行一次writeTime()函数,然后就没有然后了。与setInterval()方法不同的是,setTimeout()中的函数只会执行一次,而setInterval()方法中的函数会执行n多次,只要不清楚定时器,函数就会执行。