ECMAscript中的Date类型是在java的java.util.Date的基础上构建的。所以,Date类型使用以UTC(国际协调时间)1970年1月1日0时为起点零的毫秒数保存日期。

Date()和new Date()的区别

  • Date()传入的不管是数字、字符串,时间格式是不是正确,返回的都是当前时间。

Date(“111”),
Date(1995/06/03),
Date(520);//Tue Sep 27 2016 23:40:11 GMT+0800 (CST)

  • new Date()则是根据参数返回。

new Date();//Tue Sep 27 2016 23:40:11 GMT+0800 (CST)
new Date(1995,06,03,17,55,55);//Mon Jul 03 1995 17:55:55 GMT+0800 (CST)
new Date(“1sss”);//Invalid Date

根据传入的参数返回,无参数是返回当前时间,有格式正确的返回相应的时间,如果格式不对就返回Invalid Date。这里的Date.parse()和Date.UTC()在此先不介绍。

常用的日期/时间组件方法

getFullYear();//取得四位数的年份
getMonth();//取得月份,从0开始计算,一月份是0,十二月份是11
getDate();//返回日期月份中的天数(1到31)
getDay();//返回日期中的星期几(0是星期日,6是星期六)
getHours();//返回日期中的小时数(0到23)
getMinutes();//返回日期中的分钟数(0到59)
getSeconds();//返回日期中的秒数(0到59)

显示时间案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>show time</title>
</head>
<body>
<script>
window.onload=function(){
showTime();
}
function check(num){if(num<10){
num ="0" +num;
}
return num;
}
function showTime() {
var time = new Date();
var year = time.getFullYear();
var month = time.getMonth();
var day = time.getDate() + 1;
var h = time.getHours();
var m = time.getMinutes();
var s = time.getSeconds();
m=check(m);//分钟数小于10,前面加0
s=check(s);
h=check(h);
var weekly = new Array(7);
weekly[0] ="星期日";
weekly[1] ="星期一";
weekly[2] ="星期二";
weekly[3] ="星期三";
weekly[4] ="星期四";
weekly[5] ="星期五";
weekly[6] ="星期六";
document.getElementById("demo").innerHTML=""+year+"年"+month+"月"+day+"日 "+ weekly[time.getDay()] +h +":"+m +":"+s;
t=setTimeout('showTime()',500);
}
</script>
<div id="demo">time</div>
</body>
</html>

商品秒杀案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>show time</title>
<script>
window.onload=function(){
showtime();
}
function showtime(){
var deadline =new Date(2016,11,11,00,00,00);
var start =deadline.getTime();
var now =(new Date()).getTime();
var day = parseInt((start- now)/(24*60*60*1000));
//get datevar h=parseInt((start-now)/(1000*60*60)%24);
var m= parseInt((start-now)/(1000*60)%60);var s=parseInt((start-now)/1000%60);
document.getElementById('demo').innerHTML=""+"距离双十一秒杀还有:"+day+"天"+h+"小时"+m+"分"+s+"秒";
}
setInterval(showtime,500);
</script>
</head>
<body>
<div id="demo">time</div>
</body>
</html>

两个案例比较简单,在代码中就不加注释。