本篇內(nèi)容介紹了“JavaScript的Date對(duì)象怎么用”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
云縣網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站開(kāi)發(fā)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)公司2013年至今到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
接下來(lái)說(shuō)明 JS 第二類(lèi)常見(jiàn)的內(nèi)置對(duì)象 —— Date 對(duì)象
Date 對(duì)象和 Math 對(duì)象不同,Math 對(duì)象不是構(gòu)造函數(shù),可以直接使用,而 Date 對(duì)象是一個(gè)構(gòu)造函數(shù),所以我們必須經(jīng)過(guò)對(duì)象實(shí)例化,即 new 過(guò)之后才可以使用,Date 對(duì)象多用于處理開(kāi)發(fā)中的時(shí)間和日期方面的問(wèn)題。
var date=new Date();
Date 對(duì)象實(shí)例化時(shí)可以有參數(shù)也可以沒(méi)有參數(shù),沒(méi)有參數(shù)輸出的就是當(dāng)前系統(tǒng)當(dāng)時(shí)的的標(biāo)準(zhǔn)時(shí)間,有參數(shù)的話我們可以輸出想要展現(xiàn)的時(shí)間
沒(méi)有參數(shù)實(shí)例化后會(huì)展現(xiàn)出當(dāng)前系統(tǒng)當(dāng)時(shí)的時(shí)間和日期
var date=new Date(); //沒(méi)有參數(shù) console.log(date); //會(huì)輸出當(dāng)前時(shí)間
有參數(shù)的實(shí)例化分為兩種,分別是 數(shù)字型 和 字符串型 ,以下分別對(duì)兩種類(lèi)型舉例說(shuō)明
1.數(shù)字型參數(shù)的實(shí)例化:
var date=new Date(2021,1,18); //數(shù)字型參數(shù) console.log(date);
可以看到我們輸入的參數(shù)是1月,但輸出的結(jié)果是Feb(2月),數(shù)字型的輸出會(huì)比我們輸入的月份大一個(gè)月。
2.字符串型參數(shù)的實(shí)例化:
var date=new Date('2021-1-18 12:56:00'); //字符串型參數(shù) console.log(date);
參數(shù)是1月,輸出端的結(jié)果也是1月,因此利用字符串型參數(shù)要比數(shù)字型更多一些。
我們已經(jīng)知道Math對(duì)象有很多屬性和方法可以直接使用,Date對(duì)象也一樣,實(shí)例化過(guò)后也可以使用很多方法,比較常用的有三種格式化年月日的方法
getFullYear() 輸出當(dāng)前年份
getMonth() 輸出當(dāng)前月份(應(yīng)注意輸出的月份比實(shí)際月份小1,輸出真實(shí)月份應(yīng)該加1)
getDate() 輸出當(dāng)前幾號(hào)
getDay() 輸出當(dāng)前周幾(周一到周天分別對(duì)應(yīng)數(shù)字:1 2 3 4 5 6 0)
var Date=new Date(); console.log(Date.getFullYear()); //輸出當(dāng)前年份 console.log(Date.getMonth() + 1); //輸出結(jié)果為當(dāng)前月份的前一月,要手動(dòng)加1才能返回當(dāng)前月份 console.log(Date.getDate()); //輸出當(dāng)前幾號(hào) console.log(Date.getDay()); //輸出當(dāng)前周幾
如果想要輸出效果為 2021年1月18日 星期二,以下操作即可
(因?yàn)樾瞧趲字荒芊祷匾粋€(gè)數(shù)字,但是根據(jù)習(xí)慣我們想要返回的是‘星期幾’,所以我們把返回的數(shù)字當(dāng)做一個(gè)索引,把星期天到星期六放到一個(gè)數(shù)組中,因?yàn)樾瞧谔旆祷氐氖?,所以把星期天放在數(shù)組的第一個(gè)位置,正好對(duì)應(yīng)0索引)
var arr=['星期天','星期一','星期二','星期三','星期四','星期五','星期六']; var Date=new Date(); var year=Date.getFullYear(); var month=Date.getMonth() + 1; var date=Date.getDate(); var day=Date.getDay(); console.log(year + '年' + month + '月' + date + '日' + arr[day]);
與上面格式化年月日使用方法類(lèi)似
getHours() 輸出當(dāng)前小時(shí)
getMinutes() 輸出當(dāng)前分鐘
getSeconds() 輸出當(dāng)前秒
var Date=new Date(); console.log(Date.getHours()); //輸出當(dāng)前小時(shí) console.log(Date.getMinutes()); //輸出當(dāng)前分鐘 console.log(Date.getSeconds()); //輸出當(dāng)前秒
輸出連續(xù)格式時(shí)分秒:
將其封裝在了函數(shù)內(nèi),并利用三元運(yùn)算符將不足10的數(shù)字補(bǔ)0,符合平常看時(shí)間的習(xí)慣
function time() { var time=new Date(); var h=time.getHours(); h = h<10 ? '0'+h : h; var m=time.getMinutes(); m = m<10 ? '0'+m : m; var s=time.getSeconds(); s = s<10 ? '0'+s : s; return h+'時(shí)'+m+'分'+s+'秒'; } console.log(time());
這里所說(shuō)的總毫秒數(shù)是指當(dāng)前時(shí)間距離1970年1月1日的總毫秒數(shù),共有四種方法可以表示
valueOf()
getTime()
var date=new Date(); console.log(date.valueOf()); console.log(date.getTime());
或者使用另外一種簡(jiǎn)便寫(xiě)法 var date=+new Date();返回的就是總毫秒數(shù)
var date=+new Date(); console.log(date);
以及H5新增加的一種方法,這個(gè)方法不需要實(shí)例化對(duì)象即可獲得,更為簡(jiǎn)便
console.log(Date.now());
在日常開(kāi)發(fā)中很多地方都會(huì)用的到倒計(jì)時(shí),例如淘寶,京東的雙十一秒殺倒計(jì)時(shí)等,我們?nèi)绾我矊?xiě)出一個(gè)倒計(jì)時(shí)效果呢,我們首先會(huì)想到剛才學(xué)到的獲取當(dāng)前時(shí)間,再減去我們?cè)O(shè)置好的時(shí)間即可,但是我們獲取到的標(biāo)準(zhǔn)時(shí)間很可能會(huì)出現(xiàn)減去之后是負(fù)數(shù)的情況(例如02-12)這怎么辦呢?于是我們的時(shí)間戳便有利用價(jià)值了,時(shí)間戳即剛才講到過(guò)的總毫秒數(shù),這個(gè)時(shí)間是永遠(yuǎn)不會(huì)重復(fù)的,對(duì)此我們可以使用設(shè)置好的總毫秒數(shù)減去當(dāng)前的總毫秒數(shù),在進(jìn)行一系列單位換算,就可以得到一個(gè)簡(jiǎn)單的倒計(jì)時(shí)案例了,首先我們需要熟練記清楚單位換算之間的關(guān)系:
1秒=1000毫秒
天數(shù)=秒數(shù)/60/60/24
小時(shí)數(shù)=秒數(shù)/60/60%24
分鐘數(shù)=秒數(shù)/60%60
秒數(shù)=秒數(shù)%60
對(duì)于無(wú)法整除的秒數(shù),我們利用 parseInt()方法取整即可,有了這樣一個(gè)換算關(guān)系,我們就可以輕松地完成這個(gè)倒計(jì)時(shí)案例了
function count(time) { var nowtime=+new Date(); //得到當(dāng)前時(shí)間 var aimtime=+new Date(time); //得到目標(biāo)時(shí)間(結(jié)束時(shí)間) var times=(aimtime-nowtime)/1000; //得到倒計(jì)時(shí)時(shí)間差(毫秒) 除1000得到秒 var d=parseInt(times/60/60/24) //得到倒計(jì)時(shí)天數(shù) d=d<10?'0'+d:d; //將不足10的時(shí)間補(bǔ)0 var h=parseInt(times/60/60%24) //得到倒計(jì)時(shí)小時(shí)數(shù) h=h<10?'0'+h:h; //將不足10的時(shí)間補(bǔ)0 var m=parseInt(times/60%60) //得到倒計(jì)時(shí)分鐘數(shù) m=m<10?'0'+m:m; //將不足10的時(shí)間補(bǔ)0 var s=parseInt(times%60) //得到倒計(jì)時(shí)秒數(shù) s=s<10?'0'+s:s; //將不足10的時(shí)間補(bǔ)0 return d + '天' + h + '時(shí)' + m + '分' + s +'秒'; //返回倒計(jì)時(shí) } alert('倒計(jì)時(shí)還剩下' + count('2022-1-18 16:30:00')); //調(diào)用并輸入目標(biāo)的結(jié)束時(shí)間
“JavaScript的Date對(duì)象怎么用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
本文名稱(chēng):JavaScript的Date對(duì)象怎么用
瀏覽路徑:http://jinyejixie.com/article6/possig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、建站公司、響應(yīng)式網(wǎng)站、微信小程序、ChatGPT、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)