JS 獲取指定日期的後一天

背景

有時候咱們在跑數據時可能會遇到將指定日期變爲後一天的日期。應用場景以下:今天是4月23日17:00,我想獲取全部4月22日到23日兩天的復聯4新增預售票房信息,因此理論上咱們應該統計4月22日00:00——4月24日00:00的數據,可是用戶有可能下意識的就會選擇2二、23。
有人也許會說,加個提示不就好了何須這麼麻煩?在日期選擇裏有時候產品會要求當前日期以後的日子不可選(略槓精)那麼這種狀況下,上述需求就須要我們處理了,存在即合理hhh。那麼如何實現呢?
首先衆所周知,在編程時,日期有一個通用的標準就是時間戳(timestamp),時間戳是指格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至如今的總秒數/總毫秒數(但毫秒數更爲常見,也更加精確)。編程

思路

思路其實很簡單,就是獲取當前時間戳A,計算一天的毫秒數B,便可得後一天的時間戳C=A+B,隨後經過C獲取年月日便可。this

代碼

在項目裏用TS寫的,不用太糾結於變量的類型聲明,其餘都差很少code

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了。orm

相關文章
相關標籤/搜索