0.前言
??看到網(wǎng)上那些大神寫的時間、鐘表各種酷炫,心里癢癢的,因此今天就來說一些關(guān)于時間對象的知識憔辫,希望自己也能寫出酷炫的鐘表時鐘,O(∩_∩)O哈哈~
1.了解時間
??首先來了解兩個時間:
???(1)格林尼時間(GMT):是英國郊區(qū)格林尼治天文臺的時間仿荆,因為地球自轉(zhuǎn)的問題贰您,每個時區(qū)的時間是不一樣的。格林尼治天文臺所處的是經(jīng)度為0的地方拢操,世界上一些重大的時間都是使用的格林尼治時間锦亦。
???(2)世界協(xié)調(diào)時間(UTC):也叫世界時間。就是1970年1月1日0時令境。
2.Date
??我們知道在不管是在移動端杠园、還是PC端,都會用到時間對象Date舔庶,那么在JS中他是怎么來的呢抛蚁?
JS中的Date類型是由早期Java中的java.util.Date類型基礎(chǔ)上構(gòu)建的。所以保存的是距離1970年1月1號0時的毫秒數(shù)來存儲時間的惕橙。
(1)Date的創(chuàng)建
??第一種:用Date()函數(shù)創(chuàng)建
var date1 = Date();
console.log(date1);
console.log(typeof date1);
運行結(jié)果:
捕獲.PNG
上面獲取的是系統(tǒng)當前的時間篮绿,通過打印看到這種創(chuàng)建方法的時間得到是一個字符串“string”。
??第二種:用構(gòu)造函數(shù)創(chuàng)建
這種方法又分四種類型:
1.不使用參數(shù)吕漂,得到當前時間
var date2 = new Date();
console.log(date2);
console.log(typeof date2);
結(jié)果:
捕獲.PNG
和第一種方法的結(jié)果類似,都是得到當前時間尘应,但是返回的數(shù)據(jù)類型是“object”惶凝。
2.使用參數(shù),得到當前時間
注意:參數(shù)是一個表示時間的字符串
var date3 = new Date("2008/08/08 12:34:56");
console.log(date3);
//省略時分秒默認為0(默認是標準時間)
var date4 = new Date("2008/08/08");
console.log(date4);
var date5 = new Date("2008/9/18");
console.log(date5);
var date6 = new Date("2008-08-08 12:34:56");
console.log(date6);
var date7 = new Date("2008-09-03");//8點
console.log(date7);
var date8 = new Date("2008-1-1");//0點
console.log(date8);
結(jié)果:
捕獲.PNG
從上面可以看到犬钢,當參數(shù)不同的時候苍鲜,打印輸出的職業(yè)是不同的,只用年月日玷犹,沒有時間混滔,打印輸出的結(jié)果是時間默認為0,時間的格式不一樣的話,打印出的時間點也不同坯屿。
3油湖、參數(shù)是 年,月,日,時,分,秒,毫秒
var date9 = new Date(2015, 5, 12, 15, 67, 34, 654);
console.log(date9);
結(jié)果:
捕獲.PNG
注意:年月必須寫,月是從0開始领跛,日是從1開始乏德。
1、如果月份超過11吠昭,則年份自動增加
2喊括、如果日期超過當月應(yīng)該有的天數(shù),月自動增加
3矢棚、時郑什、分、秒蒲肋、毫秒都如此
4蘑拯、參數(shù)是一個數(shù)字
var date10 = new Date(2234);
console.log(date10);
結(jié)果:
捕獲.PNG
返回值:是距離1970年1月1日0點參數(shù)毫秒之后的時間
注意:對應(yīng)北京時間加8小時
3.Date對象的方法
這個比較簡單,直接上代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Date對象的方法</title>
</head>
<body>
<script type="text/javascript">
//得到當前時間
var date = new Date();
console.log(date);
//得到年:getFullYear()
console.log(date.getFullYear());
//得到月:getMonth()
console.log(date.getMonth());
//得到日:getDate()
console.log(date.getDate());
//得到星期:getDay()
console.log(date.getDay());
//得到時:getHours()
console.log(date.getHours());
//得到分:getMinutes()
console.log(date.getMinutes());
//得到秒:getSeconds()
console.log(date.getSeconds());
//毫秒:getMilliseconds()
console.log(date.getMilliseconds());
//getTime():當前對象表示的時間距離1970年1月1號0時的毫秒數(shù)
console.log(date.getTime());
//設(shè)置年:setFullYear()
date.setFullYear(1993);
//設(shè)置月:
//注意:月是從0開始的肉津,如果月大于等于12强胰,年份增加
date.setMonth(5);
//設(shè)置日期:setDate(),如果大于該月英因有的天數(shù)妹沙,月增加
date.setDate(17);
//星期一般不設(shè)置
//設(shè)置時:setHours(),如果大于23偶洋,日增加
date.setHours(7);
//設(shè)置分:setMinutes(),如果大于59,時增加
date.setMinutes(54);
//設(shè)置秒:setSeconds()距糖,如果大于59玄窝,分增加
date.setSeconds(33);
//設(shè)置毫秒:setMilliseconds(),如果大于999,秒增加
date.setMilliseconds(666);
//設(shè)置距離1970年1月1號0時的毫秒數(shù)
date.setTime(1000);
console.log(date);
//轉(zhuǎn)成字符串
//第一個:toLocaleString():包含年月日時分秒
console.log(date.toLocaleString());
//第二個:toLocaleDateString()悍引;包含年月日
console.log(date.toLocaleDateString());
//第三個:toLocaleTimeString()恩脂;包含時分秒
console.log(date.toLocaleTimeString());
//得到字符串表示的時間距離1970年1月1號0時的毫秒數(shù)
var date1 = Date();
console.log(Date.parse(date1));
</script>
</body>
</html>
運行結(jié)果:
捕獲.PNG
4.Date對象間的運算
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Date對象間的運算</title>
</head>
<body>
<script type="text/javascript">
var date1 = new Date("2016-10-10 12:09:43");
var date2 = new Date("2016-10-10 12:09:43");
//兩個時間對象相減,得到的是這兩個對象之間相差的毫秒數(shù)
console.log(date1 - date2);
//將兩個時間字符串拼接在一起
console.log(date1 + date2);
</script>
</body>
</html>
5.總結(jié)
??以上上Date屬性和一些常用的方法趣斤,但這只是第一步俩块,還有很多的,只是為大家給大家的開胃小菜罷了浓领。希望打賞S窨!A贰漫仆!