版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
8.4.1創(chuàng)建日期對象
創(chuàng)建日期對象是通過Date構(gòu)造函數(shù),用new關(guān)鍵字創(chuàng)建的。Date的構(gòu)造函數(shù)有4種方式,分別表示如下:◆Date()——?jiǎng)?chuàng)建代表當(dāng)前時(shí)間的Date對象。◆Date(dateString)——用指定的時(shí)間字符串創(chuàng)建日期對象?!鬌ate(milliseconds)——用指定的長整數(shù)——表示自1970年1月1日0時(shí)0分0秒開始到指定時(shí)間經(jīng)過的毫秒數(shù)——?jiǎng)?chuàng)建日期對象。◆Date(year,month,day,hours,minutes,seconds,milliseconds)——用指定的年、月、日時(shí)、分、秒、毫秒創(chuàng)建日期對象。采用日期字符串構(gòu)造日期對象時(shí),可采用的日期格式如下:◆MM/DD/YYYY——也稱為短格式,如09/01/2017。還可以寫成YYYY/MM/DD,如2017/09/01?!鬥YYY-MM-DD——ISO8601采用的標(biāo)準(zhǔn)時(shí)間格式,也稱為長格式,為JavaScript的首先格式,如2017-09-01。也可以寫作YYYY-MM,或者YYYY。還可以加上時(shí)間YYYY-MM-DDTHH:MM:SS,其中T為規(guī)定的元字符,在設(shè)置具體的時(shí)間時(shí)要保留。以上兩種格式也是國際標(biāo)準(zhǔn)格式,如果實(shí)際工作中遇到特殊要求的日期格式,請參考JavaScript手冊或相關(guān)網(wǎng)站。在上面第4種構(gòu)造函數(shù)創(chuàng)建日期對象時(shí)要注意:月份month的值為0~11,毫秒milliseconds的取值范圍為0~999,這兩點(diǎn)需要特別注意。8.4.2Date對象的方法Date方法允許你獲得或設(shè)置日期對象中的年、月、日、時(shí)、分、秒和毫秒,并可以把日期字符串轉(zhuǎn)換成日期對象,也可以把日期對象轉(zhuǎn)換成字符串對象等等。有了這些方法就可以很方便的操作日期對象了。Date對象提供的方法如表8-4所示。應(yīng)用實(shí)例用到的界面如8-4所示。實(shí)現(xiàn)的功能是單擊“提交”按鈕,可以把你選擇的日期包裝(轉(zhuǎn)換)成日期對象,并顯示幾種日期的格式。按“比較”按鈕,可以對日期1和日期2進(jìn)行比較,計(jì)算兩個(gè)日期相差的天數(shù)。圖8-4日期實(shí)例界面要讀取日期控件的值,首先要查找到相應(yīng)的日期控件,這里使用getElementById()進(jìn)行查找,查找到日期控件(HTML標(biāo)記)之后,可以通過日期控件的value屬性讀取它的值,代碼如下:varbirth=document.getElementById("birth").value;變量brith存放日期控制輸入的值。要把這個(gè)birth值——格式形如2017-09-20——轉(zhuǎn)換成日期對象,有兩種方式:使用Date構(gòu)造函數(shù),或者使用Date的parse()方法。但兩種方式有區(qū)別,Date構(gòu)造函數(shù)得到的是日期對象,而Date的parse()方法得到的是一個(gè)長整數(shù)表示。這里使用構(gòu)造函數(shù)的方法,把日期類型的字符串轉(zhuǎn)換成日期對象,代碼如下:vardateBirth=newDate(birth);顯示格式只用了常用的3種:◆toString()——最普通的格式,沒有任何格式要求,只把日期對象轉(zhuǎn)換成字符串表示?!魌oLocaleDateString()——按照所在地域使用的日期格式,顯示日期對象的日期部分?!魌oJSON()——按照J(rèn)SON的格式(字符串)顯示日期對象的值。我們按照以上三種方式把三種日期連接成一個(gè)字符串,并加入了換行符<br/>,然后再顯示在id為display的div中,代碼如下:vardisplay="toString():"+dateBirth.toString() +"<br/>toLocaleDateString():"+dateBirth.toLocaleDateString()+"<br/>toJSON():"+dateBirth.toJSON();document.getElementById("display").innerHTML=display;為了使大家能夠看清兩種日期——日期字符串和日期對象——的區(qū)別,我們使用typeofbirth顯示了birth(日期控件的值)的類型,返回值為“string”,說明日期控件的值是字符串類型,而dateBirth(birth包裝成日期的對象)用instanceof運(yùn)算符查看其類型,注意這里不能使用typeof運(yùn)算符,因?yàn)槭褂胻ypeof時(shí)只能返回object,而不是date。所需要的代碼如下:console.log(typeofbirth);console.log(dateBirthinstanceofDate);console為JavaScript的控制臺,兩個(gè)運(yùn)算結(jié)果就顯示在控制臺上(有關(guān)控制臺的內(nèi)容見4.5.1節(jié))。要進(jìn)行兩個(gè)日期的比較,最直接的方法就是把兩個(gè)日期全部轉(zhuǎn)換成長整數(shù)(即自1970年1月1日0時(shí)0分0秒經(jīng)過的毫秒數(shù)),再比較這兩個(gè)長整數(shù)的大小。這有兩種情況:
◆兩個(gè)日期對象比較——通過Date對象的getTime()方法獲得時(shí)間的長整數(shù)表示,然后進(jìn)行比較。
◆兩個(gè)日期字符串比較——通過Date對象的parse()方法將日期字符串轉(zhuǎn)換成長整數(shù)表示,再進(jìn)行比較。在這個(gè)例子中,要比較用戶選擇的兩個(gè)日期的大小,也就是兩個(gè)日期字符串進(jìn)行比較,所以采用后一種方式,即通過parse()方法把日期字符串轉(zhuǎn)換成長整數(shù)表示,再進(jìn)行比較,代碼如下:vard1=document.getElementById("date1").value;vard2=document.getElementById("date2").value;vard1Num=Date.parse(d1);vard2Num=Date.parse(d2);對于比較結(jié)果,我們采用“日期1比日期2早/晚多少天”的方式進(jìn)行表達(dá)。實(shí)現(xiàn)過程首先,要計(jì)算兩個(gè)日期長整數(shù)的差值,但因?yàn)椴荒艽_定兩個(gè)日期的早晚(或者說兩個(gè)長整數(shù)的大小),所以只能使用這個(gè)差的絕對值(Math.abs()),求出時(shí)間之差后再除以一天的毫秒數(shù),就得到兩個(gè)日期相差的天數(shù)。早和晚是由兩個(gè)長整數(shù)的大小決定的,長整數(shù)越大說明時(shí)間越晚,越小說明日間越早,求得結(jié)果(“日期1比日期2早/晚多少天”)的代碼如下所示:varresult="";if(d1Num>d2Num){//計(jì)算兩個(gè)日期的“早”“晚”result="晚";}else{ result="早";}vardifference=Math.abs(d1Num-d2Num);vardays=difference/1000/60/60/24;//計(jì)算兩日期相差的天數(shù)在表達(dá)結(jié)果時(shí)我們不能把兩個(gè)長整數(shù)作為日期顯示給用戶,所以還要把長整數(shù)轉(zhuǎn)換成日期對象。這可采用聲明日期對象,然后調(diào)用setTime()方法實(shí)現(xiàn)把長整數(shù)轉(zhuǎn)換成日期對象,代碼如下:vardate1=newDate();date1.setTime(d1Num);vardate2=newDate();date2.setTime(d2Num);最后就是把計(jì)算結(jié)果顯示在id為display的div中,代碼如下:document.getElementById("display").innerHTML= date1.toL
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 力量系列活動(dòng)方案策劃(3篇)
- 塔吊電纜施工方案(3篇)
- 南岸廚房施工方案(3篇)
- 中山彩燈活動(dòng)策劃方案(3篇)
- 超高天棚施工方案(3篇)
- 玻璃團(tuán)隊(duì)施工方案(3篇)
- 車輛維修保養(yǎng)服務(wù)標(biāo)準(zhǔn)規(guī)范(標(biāo)準(zhǔn)版)
- 游樂場所安全培訓(xùn)
- 2025年高職戲劇學(xué)(戲劇理論)試題及答案
- 2025年高職醫(yī)學(xué)檢驗(yàn)技術(shù)(臨床生物化學(xué)檢驗(yàn))試題及答案
- 低空經(jīng)濟(jì)行業(yè)前景與市場分析
- 《系統(tǒng)可靠性分析》課件
- 《macd指標(biāo)詳解》課件
- 自動(dòng)化電氣元器件介紹與使用
- 天津市-2024年-社區(qū)工作者-上半年筆試真題卷
- GB/T 44545-2024制冷系統(tǒng)試驗(yàn)
- 脾約免疫細(xì)胞在腸道菌群維持穩(wěn)態(tài)中的作用
- DBJ 53∕T-23-2014 云南省建筑工程施工質(zhì)量驗(yàn)收統(tǒng)一規(guī)程
- 物資、百貨、五金采購 投標(biāo)方案(技術(shù)方案)
- 2024年安防電子市場洞察報(bào)告
- 3D打印技術(shù)合同
評論
0/150
提交評論