JavaScript系列复习(二):Date 对象

Date 对象

     在JavaScript中,处理时间和日期最常用的就是Date对象了。

1、创建Date对象

     创建 Date 对象: new Date(),以下四种方法同样可以创建 Date 对象:

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

2、Date对象方法(常用)

  var dateData = new Date();
  /***** 获取日期属性 *****/
  // 获取日期-日(1 ~ 31)
  var dateStr = dateData.getDate();
  console.log(dateStr); // 17
  // 获取日期-月份(0 ~ 11),一月为 0, 二月为 1, 以此类推
  var monthStr = dateData.getMonth();
  monthStr = parseInt(monthStr)+1;
  console.log(monthStr); // 1
  // 获取日期-年份(4位数)
  var yearStr = dateData.getFullYear();
  console.log(yearStr); // 2022
  /***** 获取时间属性 *****/
  // 获取时间-小时(0 ~ 23)
  var hourStr = dateData.getHours();
  console.log(hourStr); // 15
  // 获取时间-分钟(0 ~ 59)
  var minuteStr = dateData.getMinutes();
  console.log(minuteStr); // 50
  // 获取时间-秒钟(0 ~ 59)
  var secondStr = dateData.getSeconds();
  console.log(secondStr); // 20
  // 获取时间-毫秒数(0 ~ 999)
  var millisecondStr = dateData.getMilliseconds();
  console.log(millisecondStr); // 179
  /***** 获取星期属性 *****/
  // 获取星期数:周日到周六(0~6)
  var dayStr = dateData.getDay();
  console.log(dayStr); // 1
  /***** 设置日期属性 *****/
  // 设置日期-天(1 ~ 31)
  dateData.setDate('19');
  // 设置日期-月份(0 ~ 11)
  dateData.setMonth('2');
  // 设置日期-年份(4位数)
  dateData.setFullYear('2022');
  /***** 设置时间属性 *****/
  // 设置时间-小时(0 ~ 23)
  dateData.setHours('13');
  // 设置时间-分钟(0 ~ 59)
  dateData.setMinutes('58');
  // 设置时间-秒钟(0 ~ 59)
  dateData.setSeconds('55');
  // 设置时间-毫秒数(0 ~ 999)
  dateData.setMilliseconds('888');
  // todo...
  console.log(dateData); // Sat Mar 19 2022 13:58:55 GMT+0800 (中国标准时间)

注意:
getTime()不是获取时间戳的方法哦,它会返回 1970 年 1 月 1 日至今的毫秒数!毫秒数!毫秒数! 具体其他属性可参考 菜鸟教程[Date对象]

3、常用实例

(1)获取当前日期时间戳并格式化

     通过Date对象方法库获取:

  var dateStr = (new Date()).toLocaleDateString();
  console.log(dateStr); // 2022/1/17
  console.log(dateStr.replace(/\//g,'-')); // 2022-1-17
  var timeStr = (new Date()).toTimeString();
  console.log(timeStr); // 下午4:14:43
  var dateTimeStr = (new Date()).toLocaleString();
  console.log(dateTimeStr); // 2022/1/17 下午4:21:10

     自定义获取:

  function getFormatDate(){
     var str = new Date();
     var y = str.getFullYear();
     var m = str.getMonth() + 1;
     m = m < 10 ? ('0' + m) : m;
     var d = str.getDate();
     d = d < 10 ? ('0' + d) : d;
     var h = str.getHours();
     h = h < 10 ? ('0' + h) : h;
     var minute = str.getMinutes();
     var second = str.getSeconds();
     minute = minute < 10 ? ('0' + minute) : minute;
     second = second < 10 ? ('0' + second) : second;
     return y + '-' + m + '-' + d+' '+h+':'+minute+':'+second;
  }
  console.log(getFormatDate()); // 2022-01-17 17:44:13

(2)判断闰年

     闰年的判断条件:
     一是年号能被4整除、但不能被100整除;二是年号能被4整除,又能被400整除。

  function isLeapYear(year){
    if((parseInt(year,10)%4 == 0 && parseInt(year,10)%100 != 0)||(parseInt(year,10)%4 == 0 && parseInt(year,10)%400 == 0)){
      console.log(year+'年是闰年!');
    }else{
      console.log(year+'年不是闰年,是平年!');
    }
  };
  isLeapYear(2022); // 2022年不是闰年,是平年!

(2)计算时间差、天数差、月份差、年份差、星期差(时间间隔)

     计算时间间隔:

  function getTimeDiff(startT,endT,diffType){
     diffType = diffType?diffType:'';
     startT = new Date(startT);
     endT = new Date(endT);
     var diffT = parseInt(endT-startT,10); // 毫秒数
     // console.log(diffT);
     switch(diffType){
       case 'seconds':
         return (diffT/1000);
       case 'minutes':
         return (diffT/60000);
       case 'hours':
         return (diffT/3600000);
       case 'dates':
         return (diffT/3600000/24);
       case 'weeks':
         return (diffT/3600000/24/7);
       case 'months':
         return ((endT.getMonth()+1)+((endT.getFullYear()-startT.getFullYear())*12)-(startT.getMonth()+1));
       case 'years':
         return (endT.getFullYear()-startT.getFullYear());
       default:
          return diffT;
     }
  };
  console.log(getTimeDiff('2020-01-12','2022-02-17','months')); // 25

(3)电子钟表(Clock)

  function displayClock(){
    var clockTime = new Date();
    var dateStr = clockTime.toLocaleDateString();
    // timeStr
    var hours = clockTime.getHours();
    hours = parseInt(hours)<10?'0'+hours:hours;
    var minutes = clockTime.getMinutes();
    minutes = parseInt(minutes)<10?'0'+minutes:minutes;
    var seconds = clockTime.getSeconds();
    seconds = parseInt(seconds)<10?'0'+seconds:seconds;
    var timeStr = hours+':'+minutes+':'+seconds;
    setTimeout(displayClock(),500);
  };
posted @ 2022-01-19 17:17  前端开发者-少校  阅读(121)  评论(0编辑  收藏  举报