javascript日期对象8.0

11、日期

时间对象

在计算机的世界中,时间是从1970.1.1 00:00 开始的,都是通过毫秒数来计算

var time = new Date().getTime();
//1597407020009  这里是距离1970年有多少毫秒
document.write(time);

获取当前时间

//定义时间对象
var date = new Date();
//将时间对象转换成字符串   Fri Aug 14 2020 20:10:20 GMT+0800 (中国标准时间)
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();
//2020-8-14 20:22:0:815
var str = year + "-" + month + "-" + day + "-" + “ " + hour + ":" + minute + ":" + second + ":" + ms; document.write(str);

练习1:将如下年份转换成如下格式:

例如:2020.2.20  转成  "公元二零二零年二月二十日”

var date = new Date();
var res = "公元";
var arr = ["零", "一", "二","三","四","五","六","七","八","九","十"];
//
var year = date.getFullYear(); 
//将年的数字转换成字符串
var sy = year.toString();
//对年内的每个数字遍历
for(var i=0; i<sy.length; i++) {
//拿到当前数字的值 作为arr数组的下标 这样就对应了每个繁体数字
    var index = sy[i];
//对每个数字进行拼接
    res += arr[index];
}
res += "年";
//
var month = date.getMonth() + 1;
if(month<=10) {
//在10以下 翻译成汉字数字
    res += arr[month];
}else {
//取到大于10的月份的个位
    var g = month%10;

    res += "十" + arr[g];
}
res += "月";

//
var day = date.getDate();
if(day<=10) {
//在10以下的数字
    res += arr[day];
}else if(day<20){     //对10-20的日期求余可得到个位数  
    var d = day%10;
    res += "十" + arr[d];  //十可以单独加
}else if(day==20) {
    res += "二十";
}else if(day<30) {
    var d = day%10;  //20-30的日期可求余得到个位数
    res += "二十" + ar[d];
}else if(day==30) {
    res += "三十";
}else if(day==31) {
    res += "三十一";
}
res += "日";
//2020/8/14 公元二零二零年八月十四日
document.write(res);

练习2:输出当前月的日历

var date = new Date();
//输出当前日期 2020年8月15日
document.write("今天是:" + date.getFullYear() + "年" + (date.getMoth() + 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号是星期几
var fday = new Date();
//获取当前时间年  并将时间设置到对象中
fday.setFullYear(date.getFullYear());
fday.setMonth(date.getMonth());
fday.setDate(1);
//求1号前面有多少空格  这里得到当前是星期几  同时也能推断出一号前面有多少个空格  方便进行<td>填充

var week = fday.getDay();
//6
alert(week);
//当前月份有多少天?
var nmy = new Date();
//将年份设置为当前年
nmy.setFullYear(date.getFullYear());
//月份设置为当前月的下一个月
nmy.setMonth(date.getMonth() + 1);
//具体日期是从1开始的  但是这里设置为0  则是代表上个月的最后一天
nmy.setDate(0);

//可以看到刚设置日期以后所得到的最后一天日期天数
//推算出总共有多少格子
var len = week + lastDay;
//遍历每个格子
for(var i=1; i<len; i++) {
    if(i%7 == 1)  {
         document.write("<tr>");
    }
    var d = i - week;
    //这里对1号以前的空格进行空内容的填充
    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>");

 

posted @ 2020-08-14 20:30  上天安排的最大嘛!  阅读(181)  评论(0编辑  收藏  举报