【工具】javascript日期處理合集

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);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章