关于JS中的一些时间函数

1、时间格式化

function initdateFormatter() {
    Date.prototype.Format = function (fmt) {
        let o = {
            "M+": this.getMonth() + 1,                 //月份
            "d+": this.getDate(),                    //日
            "h+": this.getHours(),                   //小时
            "m+": this.getMinutes(),                 //分
            "s+": this.getSeconds(),                 //秒
            "q+": Math.floor((this.getMonth() + 3) / 3), //季度
            "S": this.getMilliseconds()             //毫秒
        };
        if (/(y+)/.test(fmt))
            fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
        for (var k in o)
            if (new RegExp("(" + k + ")").test(fmt))
                fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
        return fmt;
    }
}
export {
    initdateFormatter//格式化时间
}

2、当前时间 "yyyy-MM-dd"

function currentDate () {
  var date = new Date();
  var seperator1 = "-";
  var year = date.getFullYear();
  var month = date.getMonth() + 1;
  var strDate = date.getDate();
  if (month >= 1 && month <= 9) {
    month = "0" + month;
  }
  if (strDate >= 0 && strDate <= 9) {
    strDate = "0" + strDate;
  }
  var currentdate = year + seperator1 + month + seperator1 + strDate;
  return currentdate;
}

 3、当前时间前一天 "yyyy-MM-dd"

function lastDayDate () {
  var dd = new Date();
  dd.setDate(dd.getDate() - 1);
  var y = dd.getFullYear();
  var m = dd.getMonth() + 1; //获取当前月份的日期 
  var d = dd.getDate();
  return y + "-" + m + "-" + d;
}

 4、返回指定日期。例如:当前:CurentTime();昨天:$.fn.GetDateStr(-1)

function GetDateStr (AddDayCount) {
  var dd = new Date();
  dd.setDate(dd.getDate() + AddDayCount); //获取AddDayCount天后的日期 
  var y = dd.getFullYear();
  var m = dd.getMonth() + 1; //获取当前月份的日期 
  var d = dd.getDate();
  return y + "-" + m + "-" + d;
}

5、 计算两个日期天数差的函数,通用

function DateDiff (sDate1, sDate2) { //sDate1和sDate2是yyyy-MM-dd格式

  var aDate, oDate1, oDate2, iDays;
  aDate = sDate1.split("-");
  oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]); //转换为yyyy-MM-dd格式
  aDate = sDate2.split("-");
  oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]);
  iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24); //把相差的毫秒数转换为天数

  return iDays; //返回相差天数
}

6、 根据指定的一个日期和相差的天数,获取另外一个日期

//dateParameter为指定已经存在的日期yyyy-MM-dd  num为相差天数为整型

function addByTransDate (dateParameter, num) {

  var translateDate = "",
    dateString = "",
    monthString = "",
    dayString = "";
  translateDate = dateParameter.replace("-", "/").replace("-", "/");;

  var newDate = new Date(translateDate);
  newDate = newDate.valueOf();
  newDate = newDate + num * 24 * 60 * 60 * 1000; //备注 如果是往前计算日期则为减号 否则为加号
  newDate = new Date(newDate);

  //如果月份长度少于2,则前加 0 补位  
  if ((newDate.getMonth() + 1).toString().length == 1) {
    monthString = 0 + "" + (newDate.getMonth() + 1).toString();
  } else {
    monthString = (newDate.getMonth() + 1).toString();
  }

  //如果天数长度少于2,则前加 0 补位  
  if (newDate.getDate().toString().length == 1) {

    dayString = 0 + "" + newDate.getDate().toString();
  } else {

    dayString = newDate.getDate().toString();
  }

  dateString = newDate.getFullYear() + "-" + monthString + "-" + dayString;
  return dateString;

}

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值