美文网首页
2018-09-06 封装几个与时间计算有关的函数(JS版,持续

2018-09-06 封装几个与时间计算有关的函数(JS版,持续

作者: 随缘码 | 来源:发表于2018-09-06 14:56 被阅读0次

1.在写一个课表软件的时候,需要在表头处显示这周一至周五的日期,以下是JS代码:


let time = {}

//根据当前时间计算本周一至五的日期对象

time.getFiveDays = function() {

let currentDate = new Date();

let timesStamp = currentDate.getTime();

let currenDay = currentDate.getDay();

let dates = [];

for(let i = 0; i < 5; i++) {

let tempDate = new Date(timesStamp + 24 * 60 * 60 * 1000 * (i - (currenDay + 6) % 7));

dates.push(tempDate);

}

return dates;

}


2.传入一个日期(YYYY-MM-DD),计算与今天之间相差的天数.(可修改成任意两天之间的天数)


//两个时间相差天数 sDate1 2006-12-18格式

time.datedifference = function(sDate1) {

let dateSpan,

tempDate,

iDays, sDate2;

sDate1 = Date.parse(sDate1);

sDate2 = new Date();

dateSpan = sDate2 - sDate1;//相差毫秒数

dateSpan = Math.abs(dateSpan);//取绝对值

iDays = Math.ceil(dateSpan / (24 * 3600 * 1000));//转化为天数

// console.log(iDays + "天数");

return iDays

};


3.将一个将"yyyy-mm-dd HH:MM:ss"格式的时间 转化为 几小时前,几天前。(改编于mui)

首先将符合格式的字符串转化为Date对象

        let a = str.split(/[^0-9]/); //以非数字为分割点,分割为数组

        let date = new Date(a[0], a[1] - 1, a[2], a[3], a[4], a[5]); //传入 年 月 日 时 分 秒等参数,构造Date对象

然后定义一个对象保存年,月,日等的毫秒数

        let UNITS = {

        '年': 31557600000,

        '月': 2629800000,

        '天': 86400000,

        '小时': 3600000,

        '分钟': 60000,

        '秒': 1000

        };

用格式化的时间与当前时间相减,用结果与对象的元素进行比较,输出XX前。

for (let unit in UNITS) {

        if (diff >= UNITS[unit]) {

        resultStr = Math.floor(diff / UNITS[unit]) + unit + '前';

        break;

    }

}

return resultStr || '刚刚';

完整代码如图:

相关文章

  • 2018-09-06 封装几个与时间计算有关的函数(JS版,持续

    1.在写一个课表软件的时候,需要在表头处显示这周一至周五的日期,以下是JS代码: let time = {} //...

  • SAS函数应用技巧

    与数值计算有关的函数 下表列出了几个与数值计算有关的函数: 其中,round()函数是指定一个舍入值,然后将x舍入...

  • module

    ES6中函数复用函数封装a.js文件 外部引用 上面的引用存在的问题:引用的名称必须与封装的js中export的名...

  • 移动端左侧滑动原生js

    js入口函数 封装方法

  • Excel中关于时间计算的函数——NOW,TODAY与YEARF

    在Excel中,我们有时需要对时间进行运算,本期的分享中我们来介绍一下几个与时间计算有关的函数。 1. 如何获取当...

  • JS全年日历打印

    用函数打印全年日历,封装函数然后调用。 js

  • 面向对象详解

    创建对象各种方法: js封装 JS封装只有两种状态,一种是公开的,一种是私有的。 构造函数方式与原型方式给对象添加...

  • 28实现过程

    http://js.jirengu.com/seziduhore/1/edit?js一、封装函数 注意:对于===...

  • JS 函数封装

    返回数组或对象的长度 返回数组中的非假值组成一个新数组 返回数组中任意一个元素 数组去重复

  • Js封装函数

    一、Cookie相关 1、获取cookie 2、写入cookie 3、删除cookie 二、URL相关 1、获取u...

网友评论

      本文标题:2018-09-06 封装几个与时间计算有关的函数(JS版,持续

      本文链接:https://www.haomeiwen.com/subject/ebdxgftx.html