JS获取当前日期

let myDate = new Date();
myDate.getFullYear();    //获取完整的年份  2023
myDate.getMonth();       //获取当前月份(0-11,0代表1月)
myDate.getDate();        //获取当前日(1-31)
myDate.getDay();         //获取当前星期X(0-6,0代表星期天)
myDate.getTime();        //获取当前时间戳(从1970.1.1开始的毫秒数)
myDate.getHours();       //获取当前小时数(0-23)
myDate.getMinutes();     //获取当前分钟数(0-59)
myDate.getSeconds();     //获取当前秒数(0-59)
myDate.getMilliseconds();    //获取当前毫秒数(0-999)
myDate.toLocaleDateString();     //获取当前日期
myDate.toLocaleTimeString();     //获取当前时间
myDate.toLocaleString( );        //获取日期与时间

//---------------------------------------------------  
// 判断当下是否为闰年  
//---------------------------------------------------  

const currentDate = new Date();
if (currentDate.isLeapYear()) {
    console.log(currentDate.getFullYear() + '年是闰年');
} else {
    console.log(currentDate.getFullYear() + '年不是闰年');
}

//---------------------------------------------------  
// 输出不同格式的日期 
//---------------------------------------------------  

const date = new Date();

console.log(date.Format('yyyy-MM-dd'));           // 输出 '2023-05-16'
console.log(date.Format('yyyy年MM月dd日'));        // 输出 '2023年05月16日'
console.log(date.Format('hh:mm:ss'));              // 输出 '00:00:00'
console.log(date.Format('yyyy-MM-dd HH:mm:ss'));   // 输出 '2023-05-16 00:00:00'

//---------------------------------------------------  
// 计算两个日期的时间差
//---------------------------------------------------  

function daysBetween(DateOne, DateTwo) {
  const one = new Date(DateOne);
  const two = new Date(DateTwo);
  const diffTime = Math.abs(two - one);
  const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)); 
  return diffDays;
}

const date1 = '2023-05-16';
const date2 = '2023-06-01';

console.log(daysBetween(date1, date2));   // 输出 '16'

//---------------------------------------------------  
// 以指定格式添加时间间隔
//---------------------------------------------------  

Date.prototype.DateAdd = function(interval, number) {
  const newDate = new Date(this);
  switch (interval) {   
      case 's': return new Date(newDate.getTime() + (1000 * number));
      case 'n': return new Date(newDate.getTime() + (60000 * number));
      case 'h': return new Date(newDate.getTime() + (3600000 * number));
      case 'd': return new Date(newDate.getTime() + (86400000 * number));
      case 'w': return new Date(newDate.getTime() + (604800000 * number)); 
      case 'q': return new Date(newDate.getFullYear(), newDate.getMonth() + (3 * number), newDate.getDate());
      case 'm': return new Date(newDate.getFullYear(), newDate.getMonth() + number, newDate.getDate());
      case 'y': return new Date(newDate.getFullYear() + number, newDate.getMonth(), newDate.getDate()); 
  } 
}

const date = new Date();

console.log(date.DateAdd('d', 5));    // 在当前日期基础上添加 5 天
console.log(date.DateAdd('h', -3));   // 在当前日期基础上减去 3 小时
console.log(date.DateAdd('m', 2));    // 在当前日期基础上增加 2 个月

//---------------------------------------------------  
// 计算不同日期所在月份的最大天数
//---------------------------------------------------  

Date.prototype.MaxDayOfDate = function() {
  const date = new Date(this.getFullYear(), this.getMonth() + 1, 0);
  return date.getDate();
};

const date1 = new Date('2023-02-15');
const date2 = new Date('2023-05-31');

console.log(date1.MaxDayOfDate());   // 输出 '28',即 2023 年 2 月的最大天数
console.log(date2.MaxDayOfDate());   // 输出 '30',即 2023 年 5 月的最大天数

//---------------------------------------------------  
// 计算当前日期所在年份的周数
//---------------------------------------------------  

Date.prototype.WeekNumOfYear = function() {
  const dayOfYear = ((this - new Date(this.getFullYear(), 0, 1)) / 86400000) + 1;
  return Math.ceil(dayOfYear / 7);
};


const date = new Date('2023-05-16');
console.log(date.WeekNumOfYear());   // 输出当前日期所在年份的周数

你可能感兴趣的:(WEB,前端)