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 でのマルチスレッドプログラミング例の分析

推薦する

Dockerイメージを完全にアンインストールする手順

1. docker ps -a 実行中のイメージプロセスを表示する [root@mylinux~]#...

Windows で MySQL マスター スレーブ レプリケーションを構成する方法

MySQL マスター/スレーブ レプリケーションを使用すると、1 つのデータベース (マスター デー...

CSS3 @mediaの基本的な使い方のまとめ

//文法: @media mediatype and | not | only (メディア機能) ...

TypeScript における型保護の詳細な説明

目次概要型アサーション構文ではインスタンスオブ構文typeof構文要約する概要TypeScript ...

ブロックレベル要素、インライン要素、可変要素の概要

ブロック要素p - 段落テキストの事前フォーマットテーブルol - ソートフォームul - 順序なし...

ウェブページを作る前に、これらのいわゆる仕様を見てみましょう

この記事では、Web ページを作成する前に確認すべき、いわゆる仕様をいくつかまとめました。皆様のお役...

MySQL データベース操作 (作成、選択、削除)

MySQL データベースの作成MySQL サービスにログインしたら、create コマンドを使用し...

MySQL テーブルがロックされているかどうかを照会する方法

具体的な方法: (推奨チュートリアル:MySQLデータベース学習チュートリアル)テーブルロックの状態...

Jenkins の Publish Over SSH プラグインを使用してプロジェクトをリモート マシンにデプロイする手順

SSH プラグインの使用による公開Publish Over SSH を使用する前に、SSH 秘密キー...

ページ切り替え効果を実現するJSコード

この記事の例では、ページ切り替え効果を実現するためのJSコードの具体的なコードを参考までに共有してい...

MySQL マスタースレーブレプリケーション構成プロセス

メインライブラリの構成1. MySQLを設定する vim /etc/my.cn # ファイルに次の内...

HTML は、Web ページの作成者が学習して習得しなければならないものです。

HTML を学ぶメリットは何ですか? 1: ウェブサイトやブログのウェブ構造を簡単に変更できます。...

LinuxサーバにおけるNginxとApacheの共存の実装方法の分析

この記事では、Linux サーバー上で Nginx と Apache の共存を実装する方法について説...

Dockerはローカルイメージをパッケージ化し、他のマシンに復元します

1. docker imagesを使用して、このマシン上のすべてのイメージファイルを表示します。 2...