1. 程式人生 > >JavaScript裏的Date 對象屬性及對象方法--實現簡單的日歷

JavaScript裏的Date 對象屬性及對象方法--實現簡單的日歷

tor 個數 lin all date rip rec 說明 進行

上網搜索"js 日歷插件"就會出來各種效果的功能豐富的日歷插件,很多都可以下載源碼,然後根據各自的需求對源碼進行修改就可以直接用了.

但今天講的不是如何使用這些插件,而是講如何實現一個很簡單的只有當前這個月的日歷,具體效果如下圖:

技術分享 ( 截圖時間是 2017-7-27 ),下面展示一下實現的代碼:

 .wrap {
       font-size: 0;
 }
 .weeks span {
       display: inline-block;
       font-size: 14px;
       width: 47px;
       height: 44px;
       line-height
: 44px; border: 1px solid #EFEFEF; text-align: center; } #dates span{ font-size: 14px; display: inline-block; width:47px; height: 49px; line-height: 49px; text-align: center; border: 1px solid #EFEFEF; } #dates span.today { color: #00ADB5
; }
<div class="wrap">
    <div class="weeks">
        <span></span>
        <span></span>
        <span></span>
        <span></span>
        <span></span>
        <span></span>
        <span></
span> </div> <div id="dates"> </div> </div>
var moday=[ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]; // 寫出每月的總天數,把天數定義給一個數組
var d=new Date();
var month=d.getMonth()+1;      //當前的月份
var days=d.getDate();          //當前月的號數
var years=d.getFullYear();     //當前的年份
var run=years%4;               // 2月份的天數必須得區分今年是不是閏年 
if(run!=0){
     moday[1]=28;//2月份的天數
}else{
     moday[1]=29;
}
var date=new Date();
date.setDate(1);  //設置當前月的某一天。  日歷都是星期日在第一位,星期六在最後一位:
var momatch=[0,1,2,3,4,5,6];//這個存的是當前月的一號前面有多少空位,周日沒有,周一一個以此類推
var dangqian=momatch[date.getDay()];

var dates=document.getElementById("dates"); for(i=1;i<=parseInt(dangqian);i++){ dates.innerHTML+=‘<span>‘+‘&nbsp;‘+‘</span>‘; } var preAll = parseInt(moday[month-1]+dangqian); //當前月1號前面的空白個數+這個月總天數 for(i=parseInt(dangqian+1);i<= preAll;i++){ if(i%7==1 && i!=1){ dates.innerHTML+=‘<br>‘; //每七個是一行 } if(i==(days+dangqian)){ //給今天添加類名,方便設置樣式 days是當前號數加上前面的空白天數就是i dates.innerHTML+=‘<span class="today">‘+parseInt(i-dangqian)+‘</span>‘; }else { dates.innerHTML+=‘<span>‘+parseInt(i-dangqian)+‘</span>‘; } } for(i=preAll;i< (parseInt(preAll/7)+1)*7 ;i++){ dates.innerHTML+=‘<span>‘+‘&nbsp;‘+‘</span>‘; //補全表格的空余部分 }

直接看上面實現的代碼應該不難理解該日歷實現的原理,如果不能理解的話,我們一起來學習下JavaScript裏面對時間日期的相關屬性和方法.

上面的代碼用到的方法在下面都有說明,而且很清晰哦!

Date 對象屬性

屬性描述
constructor 返回對創建此對象的 Date 函數的引用。
prototype 使您有能力向對象添加屬性和方法。

Date 對象方法

方法描述
Date() 返回當日的日期和時間。
getDate() 從 Date 對象返回一個月中的某一天 (1 ~ 31)。
getDay() 從 Date 對象返回一周中的某一天 (0 ~ 6)。
getMonth() 從 Date 對象返回月份 (0 ~ 11)。
getFullYear() 從 Date 對象以四位數字返回年份。
getYear() 請使用 getFullYear() 方法代替。
getHours() 返回 Date 對象的小時 (0 ~ 23)。
getMinutes() 返回 Date 對象的分鐘 (0 ~ 59)。
getSeconds() 返回 Date 對象的秒數 (0 ~ 59)。
getMilliseconds() 返回 Date 對象的毫秒(0 ~ 999)。
getTime() 返回 1970 年 1 月 1 日至今的毫秒數。
getTimezoneOffset() 返回本地時間與格林威治標準時間 (GMT) 的分鐘差。
getUTCDate() 根據世界時從 Date 對象返回月中的一天 (1 ~ 31)。
getUTCDay() 根據世界時從 Date 對象返回周中的一天 (0 ~ 6)。
getUTCMonth() 根據世界時從 Date 對象返回月份 (0 ~ 11)。
getUTCFullYear() 根據世界時從 Date 對象返回四位數的年份。
getUTCHours() 根據世界時返回 Date 對象的小時 (0 ~ 23)。
getUTCMinutes() 根據世界時返回 Date 對象的分鐘 (0 ~ 59)。
getUTCSeconds() 根據世界時返回 Date 對象的秒鐘 (0 ~ 59)。
getUTCMilliseconds() 根據世界時返回 Date 對象的毫秒(0 ~ 999)。
parse() 返回1970年1月1日午夜到指定日期(字符串)的毫秒數。
setDate() 設置 Date 對象中月的某一天 (1 ~ 31)。
setMonth() 設置 Date 對象中月份 (0 ~ 11)。
setFullYear() 設置 Date 對象中的年份(四位數字)。
setYear() 請使用 setFullYear() 方法代替。
setHours() 設置 Date 對象中的小時 (0 ~ 23)。
setMinutes() 設置 Date 對象中的分鐘 (0 ~ 59)。
setSeconds() 設置 Date 對象中的秒鐘 (0 ~ 59)。
setMilliseconds() 設置 Date 對象中的毫秒 (0 ~ 999)。
setTime() 以毫秒設置 Date 對象。
setUTCDate() 根據世界時設置 Date 對象中月份的一天 (1 ~ 31)。
setUTCMonth() 根據世界時設置 Date 對象中的月份 (0 ~ 11)。
setUTCFullYear() 根據世界時設置 Date 對象中的年份(四位數字)。
setUTCHours() 根據世界時設置 Date 對象中的小時 (0 ~ 23)。
setUTCMinutes() 根據世界時設置 Date 對象中的分鐘 (0 ~ 59)。
setUTCSeconds() 根據世界時設置 Date 對象中的秒鐘 (0 ~ 59)。
setUTCMilliseconds() 根據世界時設置 Date 對象中的毫秒 (0 ~ 999)。
toSource() 返回該對象的源代碼。
toString() 把 Date 對象轉換為字符串。
toTimeString() 把 Date 對象的時間部分轉換為字符串。
toDateString() 把 Date 對象的日期部分轉換為字符串。
toGMTString() 請使用 toUTCString() 方法代替。
toUTCString() 根據世界時,把 Date 對象轉換為字符串。
toLocaleString() 根據本地時間格式,把 Date 對象轉換為字符串。
toLocaleTimeString() 根據本地時間格式,把 Date 對象的時間部分轉換為字符串。
toLocaleDateString() 根據本地時間格式,把 Date 對象的日期部分轉換為字符串。
UTC() 根據世界時返回 1970 年 1 月 1 日 到指定日期的毫秒數。
valueOf() 返回 Date 對象的原始值。
下面對某些常用的方法進行詳細的案例分析:

JavaScript裏的Date 對象屬性及對象方法--實現簡單的日歷