JavaScript——Date对象

222 阅读1分钟

这是我参与更文挑战的第16天,活动详情查看: 更文挑战

Date对象

Date对象用来处理日期和时间。

创建 Date 对象: new Date()

以下四种方法同样可以创建 Date 对象:

var d = new Date();
var d = new Date(milliseconds);
var d = new Date(dateString);
var d = new Date(year, month, day, hours, minutes, seconds, milliseconds);

对于Date对象,其中有很多设置时间和日期的方法,要列举几十个出来太过繁琐,也没什么实际的意义,这些方法我们没必要全部记住,需要的时候查看JS的API文档即可。

这里给出几个常用的方法:
getDate()	从 Date 对象返回一个月中的某一天 (1 ~ 31)。
getDay()	从 Date 对象返回一周中的某一天 (0 ~ 6)。
getFullYear()	从 Date 对象以四位数字返回年份。
getHours()	返回 Date 对象的小时 (0 ~ 23)。
getMinutes()	返回 Date 对象的分钟 (0 ~ 59)。
getMonth()	从 Date 对象返回月份 (0 ~ 11)。
getSeconds()	返回 Date 对象的秒数 (0 ~ 59)。
getTime()	返回 197011 日至今的毫秒数。

setDate()	设置 Date 对象中月的某一天 (1 ~ 31)。
setFullYear()	设置 Date 对象中的年份(四位数字)。
setHours()	设置 Date 对象中的小时 (0 ~ 23)。
setMilliseconds()	设置 Date 对象中的毫秒 (0 ~ 999)。
setMinutes()	设置 Date 对象中的分钟 (0 ~ 59)。
setMonth()	设置 Date 对象中月份 (0 ~ 11)。
setSeconds()	设置 Date 对象中的秒钟 (0 ~ 59)。
setTime()	setTime() 方法以毫秒设置 Date 对象。

Date对象小案例

通过Date对象来制作一个简单的年历,亲自动手试一下吧!

<script>
      var year = parseInt(prompt('输入年份:','2021'));//默认值是2021
      document.write(calendar(year));//调用函数生成对应的年历
      function calendar(y){
            //获取指定年份1月1日是星期几
            var week = new Date(y,0).getDay();
            var html = '';//保存字符串拼接的年历html生成的结果
            for(var i = 1; i <= 12; i++){
                html += '<table>';
                html += '<tr><th colspan="7">' + y + '年' + i + '月' +'</th></tr>';
                html += '<tr><td>日</td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td>六</td></tr>';
                //获取指定年份每个月的天数
                var max = new Date(y,i,0).getDate();
                for(var d = 1; d <= max; d++){
                    if(week && d == 1){//如果该月的第一天不是星期天,填充空白
                        html += '<td colspan="'+ week +'"></td>';
                    }
                    html += '<td>' + d + '</td>';
                    if(week == 6 && d != max){//如果星期六不是最后一天,则换行
                        html += '</tr><tr>';
                    }
                    else if(d == max){//如果是最后一天,闭合<tr>标签
                        html += '</tr>';
                    }
                    week = (week + 1 > 6)? 0 : week + 1;//如果是星期日,就让week为0,否则加一
                }
                html += '</table>';
            }
            return html;
      }
    </script>