JS 猎取指定日期的后一天

背景

有时刻我们在跑数据时能够会碰到将指定日期变成后一天的日期。运用场景以下:今天是4月23日17:00,我想猎取一切4月22日到23日两天的复联4新增预售票房信息,所以理论上我们应当统计4月22日00:00——4月24日00:00的数据,然则用户有能够下意识的就会挑选22、23。
有人或许会说,加个提醒不就行了何须这么贫苦?在日期挑选里有时刻产物会请求当前日期以后的日子不可选(略杠精)那末这类情况下,上述需求就需要我们处理了,存期近合理hhh。那末怎样完成呢?
起首尽人皆知,在编程时,日期有一个通用的规范就是时刻戳(timestamp),时刻戳是指格林威治时刻1970年01月01日00时00分00秒(北京时刻1970年01月01日08时00分00秒)起至如今的总秒数/总毫秒数(但毫秒数越发罕见,也越发准确)。

思绪

思绪实在很简朴,就是猎取当前时刻戳A,盘算一天的毫秒数B,即可得后一天的时刻戳C=A+B,随后经由过程C猎取年月日即可。

代码

在项目里用TS写的,不必太纠结于变量的范例声明,其他都差不多

      dateFormat(d: Date, str: string, isEndDate: boolean) {
        let mon = d.getMonth() + 1;
        let day = d.getDate();//设置默许的月份和天数
        if (isEndDate) {
            //当输入为完毕日期时,实行以下代码
            d.setTime(date.getTime() + 3600 * 24 * 1000);
            day = d.getDate();
            mon = d.getMonth() + 1;
        }
        let monthString = mon.toString();
        if (mon < 10) {
            //当月份小于10时,显现月份的时刻在前面加一个0
            monthString = '0' + monthString;
        }
        let dayString = day.toString();
        if (day < 10) {
            //当天数小于10时,显现天数的时刻在前面加一个0
            dayString = '0' + dayString;
        }
        //根据传进的str来返回指定的时刻花样,str可认为恣意花样的字符串
        return [d.getFullYear(), monthString, dayString].join(str);
      }
      this.dateFormat(new Date(), '-', true);
      //当前时刻为2019年4月23日,此时输出为2019-4-24

Done,后期会总结一些关于日期相干盘算的思绪,能够简朴的就不写code了。

    原文作者:shaoyuLee
    原文地址: https://segmentfault.com/a/1190000018962069
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞