Js date日期格式处理

  1. 获取当前时间的周一到周日
 function getDates() {
        let new_Date = new Date()
        // console.log(new_Date)
        let timesStamp = new_Date.getTime();
        // console.log(timesStamp)
        let currenDay = new_Date.getDay();
        // console.log(currenDay)
        let dates = [];
        for(let i = 0; i < 7; i++) {
            dates.push(new Date(timesStamp + 24 * 60 * 60 * 1000 * (i - (currenDay + 6) % 7)).toLocaleDateString().replace(/[年月]/g, '-').replace(/[日上下午]/g, ''));
        }
        return dates
    }

    console.log(getDates())
    // ["2020/8/24", "2020/8/25", "2020/8/26", "2020/8/27", "2020/8/28", "2020/8/29", "2020/8/30"]
  1. 当前日期减去前1小时、7天、1月、1年
var sdtime1 = new Date('2018-03-22 16:14:55')

var sdtime2 = sdtime1.setHours(sdtime1.getHours() -1)//小时

var sdtime3=new Date().setDate((new Date().getDate()-7))//7天
var sdtime4=new Date().setMonth((new Date().getMonth()-1))//一个月
var sdtime5=new Date().setFullYear((new Date().getFullYear()-1))//一年

console.log(new Date(sdtime2).Format("yyyy-MM-dd HH:mm:ss"));

3.指定某个日期(字符串),增加n天后,输出日期字符串,格式:年-月-日

/**
 * [dateAddDays 从某个日期增加n天后的日期]
 * @param  {[string]} dateStr  [日期字符串]
 * @param  {[int]} dayCount [增加的天数]
 * @return {[string]}[增加n天后的日期字符串]
 */
function dateAddDays(dateStr,dayCount) {
    let tempDate=new Date(dateStr.replace(/-/g,"/"));//把日期字符串转换成日期格式
    let resultDate=new Date((tempDate/1000+(86400*dayCount))*1000);//增加n天后的日期
    let resultDateStr=resultDate.getFullYear()+"-"+(resultDate.getMonth()+1)+"-"+(resultDate.getDate());//将日期转化为字符串格式
    return resultDateStr;
}

dateAddDays('2019-03-18',27); //"2019-4-14"

4.年月日自动补零 2020-4-14 -->> 2020-04-14

 /**
       * @param  {[string]} day  [日期字符串]
       * @return {[string]} 年月日自动补零
      */
   function day(day) {
     if (day.split("-")[1] < 10) {
        if (day.split("-")[2] < 10) {
            day = day.split("-")[0] + "-" + "0" + day.split("-")[1] + "-" + "0" +day.split("-")[2];
          } else {
            day = day.split("-")[0] + "-" + "0" + day.split("-")[1] + "-" + day.split("-")[2];
          }
        } else {
          if (day.split("-")[2] < 10) {
            day = day.split("-")[0] + "-" + day.split("-")[1] + "-" + "0" + day.split("-")[2];
          } else {
            day = day.split("-")[0] + "-" + day.split("-")[1] + "-" + day.split("-")[2];
          }
        }
     return day;
   }
   // day('2019-4-14')  2019-04-14

5 ,已知开始时间和结束时间 计算出中间的所有日期

// 中国标准时间format yyyy-mm-dd
const format = (time) => {
 let ymd = ''
 let mouth = (time.getMonth() + 1) >= 10 ? (time.getMonth() + 1) : ('0' + (time.getMonth() + 1))
 let day = time.getDate() >= 10 ? time.getDate() : ('0' + time.getDate())
 ymd += time.getFullYear() + '-' // 获取年份。
 ymd += mouth + '-' // 获取月份。
 ymd += day // 获取日。
 return ymd // 返回日期。
}

const getAllDate = (start, end) => {
 let dateArr = []
 let startArr = start.split('-')
 let endArr = end.split('-')
 let db = new Date()
 db.setUTCFullYear(startArr[0], startArr[1] - 1, startArr[2])
 let de = new Date()
 de.setUTCFullYear(endArr[0], endArr[1] - 1, endArr[2])
 let unixDb = db.getTime()
 let unixDe = de.getTime()
 let stamp
 const oneDay = 24 * 60 * 60 * 1000;
 for (stamp = unixDb; stamp <= unixDe;) {
   dateArr.push(format(new Date(parseInt(stamp))))
   stamp = stamp + oneDay
 }
 return dateArr
}

...
// 使用
console.log(getAllDate('2018-12-12', '2019-3-3'))


  1. 得出最近七天:
// 中国标准时间format yyyy-mm-dd
const format = (time) => {
  let ymd = ''
  let mouth = (time.getMonth() + 1) >= 10 ? (time.getMonth() + 1) : ('0' + (time.getMonth() + 1))
  let day = time.getDate() >= 10 ? time.getDate() : ('0' + time.getDate())
  ymd += time.getFullYear() + '-' // 获取年份。
  ymd += mouth + '-' // 获取月份。
  ymd += day // 获取日。
  return ymd // 返回日期。
}


const getWeekDate = () => {
  let myDate = new Date()
  // 获取前一周时间
  const oneDay = 24 * 60 * 60 * 1000;
  let oneweekdate = new Date(myDate - 7 * oneDay)
  let lastWeek = []
  lastWeek.push(format(oneweekdate))
  lastWeek.push(format(myDate))
  return lastWeek
}

    ...
 // 使用
console.log(getWeekDate())

  1. 得出最近一个月:
// 中国标准时间format yyyy-mm-dd
const format = (time) => {
  let ymd = ''
  let mouth = (time.getMonth() + 1) >= 10 ? (time.getMonth() + 1) : ('0' + (time.getMonth() + 1))
  let day = time.getDate() >= 10 ? time.getDate() : ('0' + time.getDate())
  ymd += time.getFullYear() + '-' // 获取年份。
  ymd += mouth + '-' // 获取月份。
  ymd += day // 获取日。
  return ymd // 返回日期。
}

const getMonthDate = () => {
  let nowDate = new Date()
  let nowDateChange = new Date()
  let lastMonth = []
  // 获取前一月时间
  nowDateChange.setMonth(nowDateChange.getMonth() - 1)
  lastMonth.push(format(nowDateChange))
  lastMonth.push(format(nowDate))
  return lastMonth
}
    ...
// 使用
 console.log(getMonthDate())
  1. 得出最近三个月:
// 中国标准时间format yyyy-mm-dd
const format = (time) => {
  let ymd = ''
  let mouth = (time.getMonth() + 1) >= 10 ? (time.getMonth() + 1) : ('0' + (time.getMonth() + 1))
  let day = time.getDate() >= 10 ? time.getDate() : ('0' + time.getDate())
  ymd += time.getFullYear() + '-' // 获取年份。
  ymd += mouth + '-' // 获取月份。
  ymd += day // 获取日。
  return ymd // 返回日期。
}

const getThreeMonthDate = () => {
  let nowDate = new Date()
  let nowDateChange = new Date()
  let threeMonth = []
  // 获取前三月时间
  nowDateChange.setMonth(nowDateChange.getMonth() - 3)
  threeMonth.push(format(nowDateChange))
  threeMonth.push(format(nowDate))
  return threeMonth
}
    ...
// 使用
console.log(getThreeMonthDate())

  1. 得出一年:
const format = (time) => {
  let ymd = ''
  let mouth = (time.getMonth() + 1) >= 10 ? (time.getMonth() + 1) : ('0' + (time.getMonth() + 1))
  let day = time.getDate() >= 10 ? time.getDate() : ('0' + time.getDate())
  ymd += time.getFullYear() + '-' // 获取年份。
  ymd += mouth + '-' // 获取月份。
  ymd += day // 获取日。
  return ymd // 返回日期。
}

const getYearDate = () => {
  let nowDate = new Date()
  let nowDateChange = new Date()
  let lastYear = []
  // 获取前一年时间
  nowDateChange.setFullYear(nowDateChange.getFullYear()- 1)
  lastYear.push(format(nowDateChange))
  lastYear.push(format(nowDate))
  return lastYear
}
    
    ...
 // 使用
console.log(getYearDate())
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姜天生i

如果本文对你有所帮助点赞就好~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值