Vue el-date-picker 動的制限時間範囲ケースの詳細な説明

Vue el-date-picker 動的制限時間範囲ケースの詳細な説明

2つの状況がある

1. 開始時間と終了時間が同じボックス内にあります(今月のみ限定)

2. 開始時間と終了時間を 2 つのボックスに分けます (開始時間は現在の時間より早くならないようにし、終了時間は開始時間から 1 週間を超えないようにします)

ケース1

//ケース1 オリジナル著作権声明: この記事はweixin_40998880によるオリジナル記事であり、CC 4.0 BY-SA著作権契約に準拠しています。転載の際は、元のソースリンクとこの声明を添付してください。
//この記事へのリンク: https://blog.csdn.net/weixin_40998880/article/details/106272897
 
//html
<el-日付ピッカー
   v-model="時間"
   タイプ="日付/時刻範囲"
   @change="datePickerChange"
   :picker-options="ピッカーオプション"
   範囲区切り文字="-"
   start-placeholder="開始日"
   end-placeholder="終了日"
   align="right"
   スタイル="width:100%;"
   値の形式="yyyy-MM-dd HH:mm:ss" 形式="yyyy-MM-dd HH:mm:ss"
   :default-time="['00:00:00','23:59:59']">
</el-date-picker>
 
 
//スクリプト
 
データ(){
  戻る {
     選択データ: ''、
     ピッカーオプション: {
      // クリックすると、開始時刻(minDate)が選択されます
      onPick: ({ 最大日付、最小日付 }) => {
         this.selectData = minDate.getTime()
         if (maxDate) {
           // 制限を解除 this.selectData = ''
         }
      },
      disabledDate: (時間) => {
          // 判定条件を制限するかどうか if (!this.isNull(this.selectData)) {
            var date = 新しい日付(this.selectData)
            // ここに制約条件があります。今月より大きいまたは小さい日付は無効です (他の年の今月も選択できるため、この方法は使用しないでください。具体的な制約日付については、状況 2 を参照してください)
            date.getMonth() を返します > 新しい Date(time).getMonth() || date.getMonth() < 新しい Date(time).getMonth()
          } それ以外 {
            偽を返す
          }
        }
     }
  }
},
方法:{
  // 空かどうかをチェックする isNull(value) {
    if (値) {
      偽を返す
    }
    真を返す
  }
}
 

ケース2

//状況2
//html
    <el-col :span="8">
                <el-form-item prop="beginTime" label="予約開始時間:">
                  <el-日付ピッカー
                    v-model="editForm.beginTime"
                    タイプ="datetime"
                    placeholder="開始時刻を選択してください"
                    :picker-options="ピッカーオプション[0]"
                    値の形式="yyyy-MM-dd HH:mm:ss"
                    :default-time="デフォルト時間[0]"
                  >
                  </el-date-picker> </el-form-item
              </el-col>
              <el-col :span="8"
                <el-form-item prop="endTime" label="予約終了時間:">
                  <el-日付ピッカー
                    v-model="editForm.endTime"
                    タイプ="datetime"
                    placeholder="開始時刻を選択してください"
                    :picker-options="ピッカーオプション[1]"
                    値の形式="yyyy-MM-dd HH:mm:ss"
                    :default-time="デフォルト時間[1]"
                  >
                  </el-date-picker> </el-form-item
              </el-col>
              
              
 //スクリプト
    データ(){
  戻る {
     選択データ: ''、
     デフォルト時間: [],
     ピッカーオプション: [
        {
          無効な日付: 時間 => {
            const curDate = new Date().getTime();
            定数日 = 14 * 24 * 3600 * 1000;
            const dateRegion = curDate + day;
            戻る (
              time.getTime() < Date.now() - 8.64e7 ||
              time.getTime() > 日付地域
            );
          }
        },
        {
          //終了時刻を開始時刻の1週間後までに制限します disabledDate: time => {
            // 判定条件を制限するかどうか const date = new Date(this.editForm.beginTime);
            if (!this.isNull(日付)) {
              定数日 = 7 * 24 * 3600 * 1000;
              dateRegion は date.getTime() を返します。
              戻る (
                //開始時刻より前、および開始時刻から 1 週間後の日付を無効にします new Date(time).getTime() > dateRegion ||
                新しい Date(time).getTime() < date.getTime()
              );
            } それ以外 {
              false を返します。
            }
          }
        }
      ]、
  }
},
方法:{
  // 空かどうかをチェックする isNull(value) {
    if (値) {
      偽を返す
    }
    真を返す
  },
  //現在の時刻を取得し、選択されたときにデフォルト値を追加します getNowTime() {
      d = new Date() とします。
      年、月、日、時間、分を入力します。
      //現在の時刻から10分後 d.setTime(d.getTime() + 10 * 60 * 1000);
      [年、月、日、時、分] = [
        d.getFullYear()、
        d.getMonth()、
        d.getDate()、
        d.getHours()、
        d.getMinutes()
      ];
      hour2 = hour + 1 とします。
      //開始時刻を選択した場合のデフォルト値は、現在の時刻の10分後です //終了時刻を選択した場合のデフォルト値は、現在の時刻の1時間10分後です this.defaultTime = [
        時間 + ":" + 分 + ":00",
        時間2 + ":" + 分 + ":00"
      ];
    },
}

これで、vue el-date-picker が時間範囲を動的に制限する詳細なケースに関するこの記事は終了です。vue el-date-picker が時間範囲を動的に制限する関連コンテンツの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援してください。

以下もご興味があるかもしれません:
  • Vue フィルターの完璧な時間と日付のフォーマット コード
  • Vue での一般的な時間形式の変換
  • Vueの時間変換のいくつかの方法
  • Vueは開始時間と終了時間の範囲クエリを実装します
  • Vueは、短時間に連続してクリックされた後に複数のトリガーリクエストが発生するのを防ぎます。
  • Vue タイムライン vue-light-timeline 使用方法
  • ant-design-vue 時間セレクターはデフォルトの時間操作を割り当てます
  • Ant Design Vue で日付選択ボックスと時間セレクターを組み合わせて使用​​するための手順
  • Vueは要素テーブル内の時間を指定された形式にフォーマットします

<<:  Mysql 日付クエリの詳細な紹介

>>:  Linux でのマルチスレッドプログラミング例の分析

推薦する

WebWorkerはJavaScriptサンドボックスの詳細をカプセル化します

目次1. シナリオ2. IJavaScriptShadowboxを実装する2.1 メインスレッドの実...

超大型フォントを使用した 40 の Web ページ デザイン

今日の Web デザインでは、非常に大きなフォントが表示される傾向があります。これらのオープンソース...

vueの実践的な応用におけるvuexの永続性の詳細な説明

目次vuex 永続性要約するvuex 永続性vuex: ブラウザを更新すると、vuexの状態は初期状...

vue シンプルメモ帳開発の詳しい説明

この記事では、参考までにEasy Notepadを実装するためのVueの具体的なコードを紹介します。...

Mysql5.7.14 Linux版のパスワードを忘れた場合の完璧な解決策

/etc/my.confファイルで、[mysqld]の下に次の行を追加します: skip-grant...

MYSQL サブクエリとネストされたクエリの最適化例の分析

ゲーム史上最高スコアトップ100をチェックSQLコード cdb_playsgame ps から ps...

Dockerイメージのサイズを縮小する6つの方法

2017 年に Vulhub に取り組み始めてから、私は厄介な問題に悩まされてきました。Docker...

デスクトップ仮想化を実現するために Hyper-V を展開する手順 (グラフィック チュートリアル)

Hyper-V を展開するためのハードウェア要件は次のとおりです。 64 ビット プロセッサ、具体...

Linux で lvm 論理ボリューム パーティションのサイズを調整するチュートリアル (xfs や ext4 などのさまざまなファイル システム用)

序文システムをインストールしたときに、パーティション領域を適切に割り当てませんでした。その後のメンテ...

Docker で Tomcat、MySQL、Redis をインストールするための詳細な手順

目次DockerでTomcatをインストールするtomcatイメージを使用してコンテナを作成する(イ...

HTMLドキュメントタイプの詳細な説明

私のは: <!DOCTYPE html>ブログガーデン: <!DOCTYPE HT...

MySQL 8.0.20 圧縮版のインストールチュートリアル(画像とテキスト付き)

1. MySQL ダウンロード アドレス。 http://ftp.ntu.edu.tw/MySQL...

MySQL 8.x msi バージョンのインストール チュートリアル (画像とテキスト付き)

1. MySQLをダウンロードする公式サイトのダウンロードアドレス https://dev.mys...

検証コードケースのjs実装

この記事の例では、検証コードを実装するためのjsの具体的なコードを参考までに共有しています。具体的な...