×

原生JS:用实例手把手玩转时间的转换应用,值得收藏哦!

作者:Terry2022.03.10来源:Web前端之家浏览:2488评论:0
关键词:js

今天分享下用原生Javascript玩转时间的转换应用,基本都是基础应用,大家可以收藏下吧。

时间戳转换时间或获取日期工具类,废话不多说,干货走起!!!

获取当前月的第一天

function getCurrentMonthFirst=()=>{
  var date=new Date();
  date.setDate(1);
  return common.getdateNoTime(date);
}

获前取n天日期

function getBeforeDate=()=>{
  var n = n;
  var d = new Date();
  var year = d.getFullYear();
  var mon = d.getMonth() + 1;
  var day = d.getDate();
  if (day <= n) {
    if (mon > 1) {
      mon = mon - 1;
    } else {
      year = year - 1;
      mon = 12;
    }
  }
  d.setDate(d.getDate() - n);
  year = d.getFullYear();
  mon = d.getMonth() + 1;
  day = d.getDate();
  const s = year + '-' + (mon < 10 ? '0' + mon : mon) + '-' + (day < 10 ? '0' + day : day);
  return s;
}

根据两个日期,判断相差天数

/**
 * @zhiparam sDate1 开始日期 如:2021-11-01
 * @param sDate2 结束日期 如:2021-11-02
 * @returns {nDays} 返回相差天数
 */
function daysBetween = (sDate1, sDate2) => {
  var time1 = Date.parse(new Date(sDate1));
  var time2 = Date.parse(new Date(sDate2));
  var nDays = Math.abs(parseInt((time2 - time1) / 1000 / 3600 / 24));
  return nDays;
}

根据bai两个日期,判断相差月数

/**
 * @zhiparam startDate 开始日期 如:2021-11-01
 * @param endStart结束日期 如:2021-11-02
 * @returns {intervalMonth} 返回相差月数
 */
function getIntervalMonth = (startDate, endStart) => {
  var startMonth = new Date(startDate).getMonth();
  var endMonth = new Date(endStart).getMonth();
  var intervalMonth =
    new Date(endStart).getFullYear() * 12 + endMonth - (new Date(startDate).getFullYear() * 12 + startMonth);
  return intervalMonth;
}

获取几个月前的输入日期

/**
 *{param:DateTime} date 输入日期(YYYY-MM-DD)
 *{param:number } monthNum 月数
 */
function getIntervalMonth = (startDate, endStart) => {
  var dateArr = date.split('-');
  var year = dateArr[0]; //获取当前日期的年份
  var month = dateArr[1]; //获取当前日期的月份
  var day = dateArr[2]; //获取当前日期的日
  var days = new Date(year, month, 0);
  days = days.getDate(); //获取当前日期中月的天数
  var year2 = year;
  var month2 = parseInt(month) - monthNum;
  if (month2 <= 0) {
    var absM = Math.abs(month2);
    year2 = parseInt(year2) - Math.ceil(absM / 12 == 0 ? 1 : parseInt(absM) / 12);
    month2 = 12 - (absM % 12);
  }
  var day2 = day;
  var days2 = new Date(year2, month2, 0);
  days2 = days2.getDate();
  if (day2 > days2) {
    day2 = days2;
  }
  if (month2 < 10) {
    month2 = '0' + month2;
  }
  var t2 = year2 + '-' + month2 + '-' + day2;
  return t2;
}

时间戳转换时间

function getdate= (date) => {
  var now = new Date(date),
    y = now.getFullYear(),
    m = now.getMonth() + 1,
    d = now.getDate();
  return y + '-' + (m < 10 ? '0' + m : m) + '-' + (d < 10 ? '0' + d : d) + ' ' + now.toTimeString().substr(0, 8);
}

时间戳转换时间 - 无时分秒

function getdateNoTime= (date) => {
  var now = new Date(date),
    y = now.getFullYear(),
    m = now.getMonth() + 1,
    d = now.getDate();
  return y + '-' + (m < 10 ? '0' + m : m) + '-' + (d < 10 ? '0' + d : d);
}

时间戳转换时间-无日期

function getdateTime= (date) => {
  var now = new Date(date),
    y = now.getFullYear(),
    m = now.getMonth() + 1,
    d = now.getDate();
  return now.toTimeString().substr(0, 8);
}

获取当前日期

function formatting= (time) => {
  let date = new Date();
  if (time !== undefined) {
    date = new Date(time);
  }
  const seperator1 = '-';
  const year = date.getFullYear();
  let month = date.getMonth() + 1;
  let strDate = date.getDate();
  if (month >= 1 && month <= 9) {
    month = `0${month}`;
  }
  if (strDate >= 0 && strDate <= 9) {
    strDate = `0${strDate}`;
  }
  const currentdate = year + seperator1 + month + seperator1 + strDate;
  return currentdate;
}

OK,就这么多了,收藏吧!

您的支持是我们创作的动力!
温馨提示:本文作者系Terry ,经Web前端之家编辑修改或补充,转载请注明出处和本文链接:
https://www.jiangweishan.com/article/javascript20220310.html

网友评论文明上网理性发言 已有0人参与

发表评论: