- JavaScript從入門到精通(微視頻精編版)
- 明日科技
- 2166字
- 2020-09-01 15:02:27
6.2 Date對象

視頻講解
在Web開發過程中,可以使用JavaScript的Date對象(日期對象)來實現對日期和時間的控制。如果想在網頁中顯示計時時鐘,就得重復生成新的Date對象來獲取當前計算機的時間。用戶可以使用Date對象執行各種使用日期和時間的過程。
6.2.1 創建Date對象
日期對象是對一個對象數據類型求值,該對象主要負責處理與日期和時間有關的數據信息。在使用Date對象前,首先要創建該對象,其創建格式如下:
dateObj = new Date() dateObj = new Date(dateVal) dateObj = new Date(year, month, date[, hours[, minutes[, seconds[,ms]]]])
Date對象語法中各參數的說明如表6.3所示。
表6.3 Date對象的參數說明

下面以示例的形式來介紹如何創建日期對象。
例如,輸出當前的日期和時間。代碼如下:
01 var newDate=new Date(); //創建當前日期對象 02 document.write(newDate); //輸出當前日期和時間
運行結果為:
Tue May 9 17:55:03 UTC+0800 2017
例如,用年、月、日(2015-6-20)來創建日期對象。代碼如下:
01 var newDate=new Date(2015,5,20); //創建指定年月日的日期對象 02 document.write(newDate); //輸出指定日期和時間
運行結果為:
Sat Jun 20 00:00:00 UTC+0800 2015
例如,用年、月、日、小時、分鐘、秒(2015-6-20 13:12:56)來創建日期對象。代碼如下:
01 var newDate=new Date(2015,5,20,13,12,56); //創建指定時間的日期對象 02 document.write(newDate); //輸出指定日期和時間
運行結果為:
Sat Jun 20 13:12:56 UTC+0800 2015
例如,以字符串形式創建日期對象(2015-6-20 13:12:56)。代碼如下:
01 var newDate=new Date("Jun 20,2015 13:12:56"); //以字符串形式創建日期對象 02 document.write(newDate); //輸出指定日期和時間
運行結果為:
Sat Jun 20 13:12:56 UTC+0800 2015
例如,以另一種字符串的形式創建日期對象(2015-6-20 13:12:56)。代碼如下:
01 var newDate=new Date("2015/06/20 13:12:56"); //以字符串形式創建日期對象 02 document.write(newDate); //輸出指定日期和時間
運行結果為:
Sat Jun 20 13:12:56 UTC+0800 2015
6.2.2 Date對象的屬性
Date對象的屬性有constructor和prototype。在這里介紹這兩個屬性的用法。
1.constructor屬性
constructor屬性可以判斷一個對象的類型,該屬性引用的是對象的構造函數。
語法如下:
object.constructor
必選項object是對象實例的名稱。
例如,判斷當前對象是否為日期對象。代碼如下:
01 var newDate=new Date(); //創建當前日期對象 02 if (newDate.constructor==Date) //如果當前對象是日期對象 03 document.write("日期型對象"); //輸出字符串
運行結果為:
日期型對象
2.prototype屬性
prototype屬性可以為Date對象添加自定義的屬性或方法。
語法如下:
Date.prototype.name=value
參數說明。
name:要添加的屬性名或方法名。
value:添加屬性的值或執行方法的函數。
例如,用自定義屬性來記錄當前的年份。代碼如下:
01 var newDate=new Date(); //創建當前日期對象 02 Date.prototype.mark=newDate.getFullYear(); //向日期對象中添加屬性 03 document.write(newDate.mark); //輸出新添加的屬性的值
運行結果為:
2018
6.2.3 Date對象的方法
Date對象是JavaScript的一種內部對象。該對象沒有可以直接讀寫的屬性,所有對日期和時間的操作都是通過方法完成的。Date對象的方法如表6.4所示。
表6.4 Date對象的方法

說明
UTC是協調世界時(Coordinated Universal Time)的簡稱,GMT是格林威治時(Greenwich Mean Time)的簡稱。
注意
應用Date對象中的getMonth()方法獲取的值要比系統中實際月份的值小1。
【例6.02】應用Date對象中的方法獲取當前的完整年份、月份、日期、星期、小時數、分鐘數和秒數,將當前的日期和時間分別連接在一起并輸出。程序代碼如下:(實例位置:資源包\源碼\06\6.02)
01 var now=new Date(); //創建日期對象 02 var year=now.getFullYear(); //獲取當前年份 03 var month=now.getMonth()+1; //獲取當前月份 04 var date=now.getDate(); //獲取當前日期 05 var day=now.getDay(); //獲取當前星期 06 var week=""; //初始化變量 07 switch(day){ 08 case 1: //如果變量day的值為1 09 week="星期一"; //為變量賦值 10 break; //退出switch語句 11 case 2: //如果變量day的值為2 12 week="星期二"; //為變量賦值 13 break; //退出switch語句 14 case 3: //如果變量day的值為3 15 week="星期三"; //為變量賦值 16 break; //退出switch語句 17 case 4: //如果變量day的值為4 18 week="星期四"; //為變量賦值 19 break; //退出switch語句 20 case 5: //如果變量day的值為5 21 week="星期五"; //為變量賦值 22 break; //退出switch語句 23 case 6: //如果變量day的值為6 24 week="星期六"; //為變量賦值 25 break; //退出switch語句 26 default: //默認值 27 week="星期日"; //為變量賦值 28 break; //退出switch語句 29 } 30 var hour=now.getHours(); //獲取當前小時數 31 var minute=now.getMinutes(); //獲取當前分鐘數 32 var second=now.getSeconds(); //獲取當前秒數 33 //為字體設置樣式 34 document.write("<span style='font-size:24px;font-family:楷體;color:#FF9900'>"); 35 document.write("今天是:"+year+"年"+month+"月"+date+"日 "+week); //輸出當前的日期和星期 36 document.write("<br>現在是:"+hour+":"+minute+":"+second); //輸出當前的時間 37 document.write("</span>"); //輸出</span>結束標記
運行結果如圖6.2所示。

圖6.2 輸出當前的日期和時間
應用Date對象的方法除了可以獲取日期和時間之外,還可以設置日期和時間。在JavaScript中只要定義了一個日期對象,就可以針對該日期對象的日期部分或時間部分進行設置。示例代碼如下:
01 var myDate=new Date(); //創建當前日期對象 02 myDate.setFullYear(2012); //設置完整的年份 03 myDate.setMonth(5); //設置月份 04 myDate.setDate(12); //設置日期 05 myDate.setHours(10); //設置小時 06 myDate.setMinutes(10); //設置分鐘 07 myDate.setSeconds(10); //設置秒鐘 08 document.write(myDate); //輸出日期對象
運行結果為:
Tue Jun 12 10:10:10 UTC+0800 2012
在腳本編程中可能需要處理許多關于日期的計算,例如計算經過固定天數或星期之后的日期或計算兩個日期之間的天數。在這些計算中,JavaScript日期值都是以毫秒為單位的。
【例6.03】應用Date對象中的方法獲取當前日期距離明年元旦的天數。程序代碼如下:(實例位置:資源包\源碼\06\6.03)
01 var date1=new Date(); //創建當前的日期對象 02 var theNextYear=date1.getFullYear()+1; //獲取明年的年份 03 date1.setFullYear(theNextYear); //設置日期對象date1中的年份 04 date1.setMonth(0); //設置日期對象date1中的月份 05 date1.setDate(1); //設置日期對象date1中的日期 06 var date2=new Date(); //創建當前的日期對象 07 var date3=date1.getTime()-date2.getTime(); //獲取兩個日期相差的毫秒數 08 var days=Math.ceil(date3/(24*60*60*1000)); //將毫秒數轉換成天數 09 alert("今天距離明年元旦還有"+days+"天"); //輸出結果
運行結果如圖6.3所示。

圖6.3 輸出當前日期距離明年元旦的天數
在Date對象的方法中還提供了一些以“to”開頭的方法,這些方法可以將Date對象轉換為不同形式的字符串,示例代碼如下:
01 <h3>將Date對象轉換為不同形式的字符串</h3> 02 <script type="text/javascript"> 03 var newDate=new Date(); //創建當前日期對象 04 document.write(newDate.toString()+"<br>"); //將Date對象轉換為字符串 05 document.write(newDate.toTimeString()+"<br>"); //將Date對象的時間部分轉換為字符串 06 document.write(newDate.toDateString()+"<br>"); //將Date對象的日期部分轉換為字符串 07 document.write(newDate.toLocaleString()+"<br>"); //將Date對象轉換為本地格式的字符串 08 //將Date對象的時間部分轉換為本地格式的字符串 09 document.write(newDate.toLocaleTimeString()+"<br>"); 10 //將Date對象的日期部分轉換為本地格式的字符串 11 document.write(newDate.toLocaleDateString()); 12 </script>
運行結果如圖6.4所示。

圖6.4 將日期對象轉換為不同形式的字符串
- Visual FoxPro程序設計教程(第3版)
- Building a Game with Unity and Blender
- Web交互界面設計與制作(微課版)
- Getting Started with CreateJS
- Architecting the Industrial Internet
- Android Application Development Cookbook(Second Edition)
- Internet of Things with the Arduino Yún
- The Data Visualization Workshop
- Python時間序列預測
- C++面向對象程序設計習題解答與上機指導(第三版)
- Creating Stunning Dashboards with QlikView
- Frank Kane's Taming Big Data with Apache Spark and Python
- 現代C++編程實戰:132個核心技巧示例(原書第2版)
- 快速入門與進階:Creo 4·0全實例精講
- Odoo 10 Implementation Cookbook