欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

element日期時間選擇器限制時間選擇功能實現(xiàn)(精確到小時)

 更新時間:2025年01月21日 10:14:34   作者:小太陽...  
文章介紹了如何使用Element UI的DateTimePicker組件來實現(xiàn)一個時間選擇器,該選擇器只能選擇當(dāng)前時間之后的7天,并且不能選擇當(dāng)前小時,感興趣的朋友跟隨小編一起看看吧

需求:選一個開始時間,要求精確到小時,小于當(dāng)前時刻的小時不讓選擇,只能往后選7天。
如圖:

需要element的DateTimePicker 日期時間選擇器
部分代碼如下:

  <el-form-item
    label="出發(fā)時間:"
    prop="startTime">
    <el-date-picker
      v-model="editForm.startTime"
      :picker-options="pickerOptions"http:// 控制時間選擇
      format="yyyy-MM-dd HH:mm"
      type="datetime"
      placeholder="選擇日期時間"
    />
  </el-form-item>
    pickerOptions: {
      disabledDate(time) {
        let dateTime = new Date();
        let startDateTime = dateTime.setDate(dateTime.getDate() - 1);
        let endDateTime = dateTime.setDate(dateTime.getDate() + 7);
        return (
          time.getTime() < new Date(startDateTime).getTime() ||
          time.getTime() > new Date(endDateTime).getTime()
        );
      },
      selectableRange:
        new Date(new Date().setHours(new Date().getHours() + 1)).format(
          'hh'
        ) + ':00:00 - 23:59:00'
    },

selectableRange:可選時間段
startDateTime 時間戳
new Date(startDateTime) 標(biāo)準(zhǔn)時間
new Date(startDateTime).getTime() 時間戳

還需要watch監(jiān)聽和computed,如果不監(jiān)聽,那么每一天的當(dāng)前小時都會被禁用

  computed: {
    startTime() {
      return this.editForm.startTime;
    }
  },
  watch: {
    startTime: function(newVal, oldVal) {
      let selectDate = newVal.format('yyyyMMdd');
      let oldDate = oldVal.format('yyyyMMdd');
      let nowDate = new Date().format('yyyyMMdd');
      // 如果兩次選擇的時間不相等
      if (oldDate !== selectDate) {
        // 如果這次選擇的時間等于今天的時間就不讓選當(dāng)前小時之前,否則就可以選全部時間段
        if (selectDate === nowDate) {
          this.pickerOptions.selectableRange =
            new Date(new Date().setHours(new Date().getHours() + 1)).format(
              'hh'
            ) + ':00:00 - 23:59:00';
        } else {
          this.pickerOptions.selectableRange = '00:00:00 - 23:59:00';
        }
        let realNewVal = new Date(
          newVal.format('yyyy-MM-dd') + oldVal.format(' hh:mm:ss')
        );
        // 如果這個時間比當(dāng)前時間小,就等于當(dāng)前時間,否則等于這個參數(shù)的時間
        if (realNewVal.getTime() < new Date().getTime()) {
          this.editForm.startTime = new Date();
        } else {
          this.editForm.startTime = realNewVal;
        }
      }
    }
  },

重寫了format方法,代碼如下:格式化時間也可以用庫,比如moment

/**
 * 格式化日期
 */
export const dateFormat = function() {
  /* eslint-disable no-extend-native */
  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 (let 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;
  };
};

注意:Date 對象(Date 對象用于處理日期與時間)
new Date() 中國標(biāo)準(zhǔn)時間

到此這篇關(guān)于element日期時間選擇器限制時間選擇功能實現(xiàn)(精確到小時)的文章就介紹到這了,更多相關(guān)element日期時間選擇器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vuex數(shù)據(jù)持久化的兩種實現(xiàn)方案

    vuex數(shù)據(jù)持久化的兩種實現(xiàn)方案

    在vuex的時候刷新以后里面存儲的state就會被瀏覽器釋放掉,因為我們的state都是存儲在內(nèi)存中的,所以一刷新頁面就會把state中的數(shù)據(jù)重置,這就涉及到vue數(shù)據(jù)持久化的問題,這篇文章主要給大家介紹了關(guān)于vuex數(shù)據(jù)持久化的兩種實現(xiàn)方案,需要的朋友可以參考下
    2021-07-07
  • vite.config.ts配置之自動導(dǎo)入element-puls方式

    vite.config.ts配置之自動導(dǎo)入element-puls方式

    這篇文章主要介紹了vite.config.ts配置之自動導(dǎo)入element-puls方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue安裝依賴npm install過程中報錯npm ERR! cb() never called!問題

    vue安裝依賴npm install過程中報錯npm ERR! cb() nev

    這篇文章主要介紹了vue安裝依賴npm install過程中報錯npm ERR! cb() never called!問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • VUE?使用canvas繪制管線管廊示例詳解

    VUE?使用canvas繪制管線管廊示例詳解

    這篇文章主要為大家介紹了VUE?使用canvas繪制管線/管廊實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • vue一步步實現(xiàn)alert功能

    vue一步步實現(xiàn)alert功能

    本篇文章主要介紹了vue一步步實現(xiàn)alert功能,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • 詳解Vue3.0 前的 TypeScript 最佳入門實踐

    詳解Vue3.0 前的 TypeScript 最佳入門實踐

    這篇文章主要介紹了詳解Vue3.0 前的 TypeScript 最佳入門實踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Vue.js使用this.$confirm換行顯示提示信息實例

    Vue.js使用this.$confirm換行顯示提示信息實例

    在編寫Web應(yīng)用時,實現(xiàn)多行文本顯示通常需要用到HTML標(biāo)簽或JavaScript特定函數(shù),本文介紹了如何使用JavaScript的$createElement函數(shù)來創(chuàng)建多行文本顯示,$createElement可以創(chuàng)建任何HTML標(biāo)簽,使得在JavaScript中控制HTML輸出更加靈活,通過簡單的代碼示例
    2024-10-10
  • vue項目部署到nginx/tomcat服務(wù)器的實現(xiàn)

    vue項目部署到nginx/tomcat服務(wù)器的實現(xiàn)

    這篇文章主要介紹了vue項目部署到nginx/tomcat服務(wù)器的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Vue.js項目中管理每個頁面的頭部標(biāo)簽的兩種方法

    Vue.js項目中管理每個頁面的頭部標(biāo)簽的兩種方法

    這篇文章主要介紹了Vue.js項目中管理每個頁面的頭部標(biāo)簽的兩種方法,需要的朋友可以參考下
    2018-06-06
  • mpvue全局引入sass文件的方法步驟

    mpvue全局引入sass文件的方法步驟

    這篇文章主要介紹了mpvue全局引入sass文件的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03

最新評論