久久无码中文字幕_日韩精品无码一本二本三_久久精品呦女暗网_欧美一级夜夜爽_久久精品国产99久久99久久久

23
2023/09

根據(jù)時間選擇器展示echarts軸時間

發(fā)布時間:2023-09-23 13:37:01
發(fā)布者:理塘王
瀏覽量:
0

    今天做頁面的時候有這樣一個需求,element的時間選擇器只能選擇一星期的數(shù)據(jù),并且根據(jù)時間選擇器選擇的時間展示echarts軸的時間。這里一般的解決的方法是把時間范圍發(fā)給后端,后端會帶著數(shù)據(jù)返回。但是,前端也可以完成時間軸的獲取。

    根據(jù)時間選擇器展示echarts軸時間

一、時間選擇一星期

    Element有一個叫picker-options的屬性,可以控制禁止選取的日期。

根據(jù)時間選擇器展示echarts軸時間

        它綁定data中的一個對象,對象中可以設(shè)置方法。直接上代碼。

 pickerOptions: {
        onPick: ({ maxDate, minDate }) => {
          // 把選擇的第一個日期賦值給一個變量。
          this.choiceDate = minDate.getTime()
          // 如何你選擇了兩個日期了,就把那個變量置空
          if (maxDate) this.choiceDate = ''
        },
        disabledDate: time => {
          // 如何選擇了一個日期
          if (this.choiceDate) {
            // 7天的時間戳
            const one = 6 * 24 * 3600 * 1000
            // 當前日期 - one = 7天之前
            const minTime = this.choiceDate - one
            // 當前日期 + one = 7天之后
            const maxTime = this.choiceDate + one
            return (
              time.getTime() < minTime ||
              time.getTime() > maxTime ||
              // 限制不能選擇今天及以后
              time.getTime() > Date.now()
            )
          } else {
            // 如果沒有選擇日期,就要限制不能選擇今天及以后
            return time.getTime() > Date.now()
          }
        }
      },

 根據(jù)時間選擇器展示echarts軸時間

二、獲得日期數(shù)組

    Echarts的x軸的data是一個數(shù)組,而我們只有兩個日期,還是個字符串,所以我們現(xiàn)需要把兩個日期字符串轉(zhuǎn)變?yōu)槟軌蛴嬎愕暮撩霐?shù)。

      var bd = new Date(arr[0]), be = new Date(arr[1]); //轉(zhuǎn)為中國標準時間
      var bd_time = bd.getTime(), be_time = be.getTime(), time_diff = be_time - bd_time; //轉(zhuǎn)為毫秒
      var d_arr = [];
      for (var i = 0; i <= time_diff; i += 86400000) {
        var ds = new Date(bd_time + i);
        d_arr.push((ds.getMonth() + 1) + '-' + ds.getDate())
      }


    首先通過new Date()轉(zhuǎn)變?yōu)橹袊鴺藴蕰r間,再通過getTime轉(zhuǎn)變?yōu)楹撩霐?shù),計算出兩個日期相差的時間,利用for循環(huán),每次循環(huán)增加86400000ms也就是一天的時間,每次循環(huán)都返回一個“月-日”的字符串,并利用push加入到數(shù)組中,這樣就得到了數(shù)組。

根據(jù)時間選擇器展示echarts軸時間

    如果需要補0就判斷ds.getMonth和ds.getDate的大小,如果小于10就+‘0’。

    然后我們把d_arr作為x軸的數(shù)據(jù)就可以了。

 


關(guān)鍵詞:
返回列表