JavaScript-07 Date对象
一、Date对象
Date对象用于获得和处理日期和时间。在计算机的世界中:时间是从1970.1.1 00:00 开始;都是通过 毫秒数来计算的。
二、定义日期
可以通过new关键词来定义Date对象。
var myDate = new Date();
三、日期对象的方法
3.1 获取当前时间:getTime();
var time= new Date().
time.getTime(); time代表time 表示当前距离1970.1.1 的毫秒数。
3.2 将时间对象转换成字符串:toString();
3.3 获取年份:getFullYear();获取四位数的年份。
3.4 获取月份:getMonth();返回月份(0-11),一般要加1才符合我们的月份。
3.5 获取日期:getDate(); 返回一个月中的某一天(1-31)。
3.6 获取小时:getHours(); 返回(0-23)。
3.7 获取分钟数:getMinutes(); 返回(0-59)。
3.8 获取秒数:getSeconds(); 返回(0-59)。
3.9 获取毫秒数:getMilliseconds();返回(0-999)。
实例:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>时间对象</title> </head> <body> </body> <script type="text/javascript"> //获取当前时间: var time= new Date().getTime(); //document.write(time); //如何定义时间对象: var date = new Date(); //将时间对象转换成字符串 document.write(date.toString()); //可以将时间对象的各个部分拆分,从新组成我们认识的时间 //获取年: var year=date.getFullYear(); //获取月份: 注意 +1; var month=date.getMonth()+1; //获取日期: var day=date.getDate(); //获取小时 var hour =date.getHours(); //获取分钟数 var minute=date.getMinutes(); //获取秒数 var second=date.getSeconds(); //获取毫秒数 var ms=date.getMilliseconds(); var str=year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second+":"+ms; document.write("<br>"); document.write(str); document.write("<br>"); //既然有get方法,也有set方法。可以利用setFullYear();等方法自行设置时间。
//创建一个如下的时间对象 var dd = new Date(); dd.setFullYear(2000); dd.setMonth(1); document.write(dd); </script> </html>
四、练习
4.1 将年份转换成如下格式 例如:2020.2.20 转成 "公元二零二零年二月二十日”。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> </body> <script type="text/javascript"> var date = new Date(); var res = "公元"; var arr = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"]; //年 var year = date.getFullYear(); //2020 var sy = year.toString(); for(var i = 0; i < sy.length; i++) { var index = sy[i]; res += arr[index]; } res+="年"; //月 var month=date.getMonth()+1; if(month<=10){ res+=arr[month]; }else { var g=month%10; res+="十"+arr[g]; } res+="月" //日 var day=date.getDate(); if(day<=10){ res+=arr[day]; }else if(day<20){ var d=day%10; res+="十"+arr[d]; }else if(day==20 ){ res+="二十"; }else if(day<30){ var d=day%10; res+="二十"+arr[d]; }else if(day==30){ res+="三十"; }else{ res+="三十一"; } res+="日"; document.write(res); </script> </html>
4.2 根据今天的日期(年、月、日)在网页中显示如下格式的日历,今天的号数使用红色表示。
解答:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> </body> <script type="text/javascript"> var date = new Date(); document.write("今天是:" + date.getFullYear() + "年" + (date.getMonth() + 1) + "月" + date.getDate() + "日") document.write("<br>"); document.write("<br>"); document.write("<table>"); document.write("<tr>"); var arr = ["天", "一", "二", "三", "四", "五", "六"]; for(var i = 0; i < 7; i++) { document.write("<td>星期" + arr[i] + "</td>"); } document.write("</tr>"); //1. 1号是星期几【】 var fday = new Date(); fday.setFullYear(date.getFullYear()); fday.setMonth(date.getMonth()); fday.setDate(1); //求 1号前面有多少空格 var week = fday.getDay(); //alert(week); //2. 当前月份有多少天? var nmy = new Date(); nmy.setFullYear(date.getFullYear()); //设置下一个月 nmy.setMonth(date.getMonth() + 1); // nmy.setDate(1); //下一个月1 号 // 当前月的最后一天 nmy.setDate(0); // 当前月有多少天 var lastDay = nmy.getDate(); //总共有多少格子 var len = week + lastDay; for(var i = 1; i <= len; i++) { if(i % 7 == 1) { document.write("<tr>"); } var d = i - week; if(d <= 0) { document.write("<td></td>") } else { if(d == date.getDate()) { document.write("<td style='color: red;'>" + d + "</td>"); } else { document.write("<td>" + d + "</td>"); } } if(i % 7 == 0) { document.write("</tr>"); } } document.write("</table>"); </script> </html>
效果: