1

javascript日期处理合集

let time = new Date()
console.log(time) // Wed Oct 23 2019 10:47:04 GMT+0800 (中国标准时间)
console.log(time.getDate()) // 23
console.log(time.getDay()) // 3 ==> 周三
console.log(time.getMonth()) // 9  ==> 9+1月  获取本月需要+1
console.log(time.getFullYear()) // 2019
console.log(time.getTime()) // 1571799028703

格式化日期 XXXX-MM-DD-HH-MM-SS

// 格式化日期 XXXX-MM-DD-HH-MM-SS
function formatDate(time) {
  if (!time) return ''
  let date = new Date(time)
  return date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() +
    ' ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds()
}

获取本周、本季度、本月、上月的开始日期、结束日期

/**
 * 获取本周、本季度、本月、上月的开始日期、结束日期
 */
var now = new Date(); //当前日期
var nowDayOfWeek = now.getDay(); //今天本周的第几天
var nowDay = now.getDate(); //当前日
var nowMonth = now.getMonth(); //当前月
var nowYear = now.getYear(); //当前年
nowYear += (nowYear < 2000) ? 1900 : 0; //
var lastMonthDate = new Date(); //上月日期
lastMonthDate.setDate(1);
lastMonthDate.setMonth(lastMonthDate.getMonth() - 1);
var lastYear = lastMonthDate.getYear();
var lastMonth = lastMonthDate.getMonth();

格式化日期:yyyy-MM-dd

//格式化日期:yyyy-MM-dd
function formatDate(date) {
  var myyear = date.getFullYear();
  var mymonth = date.getMonth() + 1;
  var myweekday = date.getDate();
  if (mymonth < 10) {
    mymonth = "0" + mymonth;
  }
  if (myweekday < 10) {
    myweekday = "0" + myweekday;
  }
  return (myyear + "-" + mymonth + "-" + myweekday);
}

获取n个月后的日期

// 获取n个月后的日期
function getDateAfterNMonth(n) {
  let time = new Date()
  time.setMonth(time.getMonth() + n)
  return time
}
let DayBeforeSixMonths = getDateAfterNMonth(-6)

获取当天的凌晨时间

// 获取当天的凌晨时间
function getFirstTimeOfDay(date) {
  return new Date(date.setHours(0, 0, 0, 0))
}
let firstTime = getFirstTimeOfDay(DayBeforeSixMonths)
console.log(firstTime) // Tue Apr 23 2019 00:00:00 GMT+0800 (中国标准时间)
console.log(formatDate(firstTime)) // 2019-4-23 0:0:0

获取当天23:59:59的时间

// 获取当天23:59:59的时间
function getLastTimeOfDay(date) {
  return new Date(new Date(date.toLocaleDateString()).getTime() + 24 * 60 * 60 * 1000 - 1)
}
let lastTime = getLastTimeOfDay(DayBeforeSixMonths)
console.log(lastTime) // Tue Apr 23 2019 23:59:59 GMT+0800 (中国标准时间)
console.log(formatDate(lastTime)) // 2019-4-23 23:59:59
console.log(lastTime.toLocaleString()) // 2019/4/23 下午11:59:59

获取本周的周一

//获取本周的周一
function getFirstDayOfWeek(date) {
  let weekday = date.getDay() || 7 //获取星期几,getDay()返回值是 0(周日) 到 6(周六) 之间的一个整数。0||7为7,即weekday的值为1-7
  date.setDate(date.getDate() - weekday + 1) //往前算(weekday-1)天,年份、月份会自动变化
  return this.formatDate(date)
}

获得某月的天数

//获得某月的天数
function getMonthDays(myMonth) {
  var monthStartDate = new Date(nowYear, myMonth, 1);
  var monthEndDate = new Date(nowYear, myMonth + 1, 1);
  var days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24);
  return days;
}

获得本季度的开始月份

//获得本季度的开始月份
function getQuarterStartMonth() {
  var quarterStartMonth = 0;
  if (nowMonth < 3) {
    quarterStartMonth = 0;
  }
  if (2 < nowMonth && nowMonth < 6) {
    quarterStartMonth = 3;
  }
  if (5 < nowMonth && nowMonth < 9) {
    quarterStartMonth = 6;
  }
  if (nowMonth > 8) {
    quarterStartMonth = 9;
  }
  return quarterStartMonth;
}

获得本周的开始日期

//获得本周的开始日期
function getWeekStartDate() {
  var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek);
  return formatDate(weekStartDate);
}

获得本周的结束日期

//获得本周的结束日期
function getWeekEndDate() {
  var weekEndDate = new Date(nowYear, nowMonth, nowDay + (6 - nowDayOfWeek));
  return formatDate(weekEndDate);
}

获得上周的开始日期

//获得上周的开始日期
function getLastWeekStartDate() {
  var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek - 7);
  return formatDate(weekStartDate);
}

获得上周的结束日期

//获得上周的结束日期
function getLastWeekEndDate() {
  var weekEndDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek - 1);
  return formatDate(weekEndDate);
}

获得本月的开始日期

//获得本月的开始日期
function getMonthStartDate() {
  var monthStartDate = new Date(nowYear, nowMonth, 1);
  return formatDate(monthStartDate);
}

获得本月的结束日期

//获得本月的结束日期
function getMonthEndDate() {
  var monthEndDate = new Date(nowYear, nowMonth, getMonthDays(nowMonth));
  return formatDate(monthEndDate);
}

获得上月开始日期

//获得上月开始日期
function getLastMonthStartDate() {
  var lastMonthStartDate = new Date(nowYear, lastMonth, 1);
  return formatDate(lastMonthStartDate);
}

获得上月结束日期

//获得上月结束日期
function getLastMonthEndDate() {
  var lastMonthEndDate = new Date(nowYear, lastMonth, getMonthDays(lastMonth));
  return formatDate(lastMonthEndDate);
}

获得本季度的开始日期

//获得本季度的开始日期
function getQuarterStartDate() {
  var quarterStartDate = new Date(nowYear, getQuarterStartMonth(), 1);
  return formatDate(quarterStartDate);
}

获得本季度的结束日期

//获得本季度的结束日期
function getQuarterEndDate() {
  var quarterEndMonth = getQuarterStartMonth() + 2;
  var quarterStartDate = new Date(nowYear, quarterEndMonth,
    getMonthDays(quarterEndMonth));
  return formatDate(quarterStartDate);
}

MandyShen
166 声望21 粉丝