javascript中一個重要的內(nèi)置對象就是Date對象,平時(shí)寫前端代碼的時(shí)候,經(jīng)常需要用到這個對象,進(jìn)行各種格式轉(zhuǎn)換之類的。正好在學(xué)習(xí)javascript,總結(jié)一下這個對象的使用方式。
//創(chuàng)建一個表示當(dāng)前時(shí)間的日期對象
var date = new Date();
打印一下這個日期對象,發(fā)現(xiàn)是這樣的格式:
Sat Nov 03 2018 16:30:01 GMT+0800 (中國標(biāo)準(zhǔn)時(shí)間)
那么怎么創(chuàng)建一個指定時(shí)間的日期對象呢?其實(shí),Date的構(gòu)造函數(shù)會接收一個long型的數(shù)值,然后根據(jù)這個數(shù)值計(jì)算出一個從1970年0點(diǎn)0分0秒開始的時(shí)間(注意北京時(shí)間是從1970年8點(diǎn)0分0秒開始,所以要正確顯示時(shí)間的話,一般需要減去8個小時(shí))。 而Date有一個函數(shù)Date.parse(),這個函數(shù)接收一個字符串參數(shù),可以將這個表示時(shí)間的參數(shù)返回為long型的毫秒數(shù)。例如:獲取2018年3月15日的日期對象。
var date = new Date(Date.parse("2018/3/15"));
打印一下:
Thu Mar 15 2018 00:00:00 GMT+0800 (中國標(biāo)準(zhǔn)時(shí)間)
這個函數(shù)的參數(shù)格式一般使用的有:
YYYY-MM-DD hh:mm:ss 等
然后有一個特殊的函數(shù)Date.now() 這個函數(shù)獲取的是當(dāng)前時(shí)間的毫秒數(shù),這個函數(shù)只在IE9+、Firefox3+、Safari3+、Opera10.5和Chrome中有效。在其他瀏覽器版本中使用 +new Date() 獲取當(dāng)前毫秒數(shù)。
日期格式化方法:
toDateString() 以特定于實(shí)現(xiàn)的格式顯示星期幾、月、日和年;
toTimeString() 以特定于實(shí)現(xiàn)的格式顯示時(shí)、分、秒和時(shí)區(qū);
toLocalDateString() 以特定于地區(qū)的格式顯示星期幾、月、日和年;
toLocalTimeString() 以特定于實(shí)現(xiàn)的格式顯示時(shí)、分、秒;
toUTCString() 以特定于實(shí)現(xiàn)的格式完整的UTC日期;
下面看以上方法在chrome中的實(shí)現(xiàn)
Sat Nov 03 2018
18:12:14 GMT+0800 (中國標(biāo)準(zhǔn)時(shí)間)
2018/11/3
下午6:12:14
Sat, 03 Nov 2018 10:12:14 GMT
還有比較常見的getFullYear、getMonth、getDate、getDay之類的函數(shù)就不多介紹了,需要注意的是Month是從0開始計(jì)數(shù)的。
另附上一個倒計(jì)時(shí)例子:
var count = 1000 * 60 ;
setInterval(function () {
var time = new Date(count);
var hours = time.getHours() - 8;
time.setHours(hours);
console.log(time.toTimeString());
count = count - 1000;
},1000);