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

推薦する

Easyswoole ワンクリック インストール スクリプトとパゴダ インストール エラー

よくある質問easyswoole を初めて使用する場合は、次のような問題に遭遇することがよくあります...

要素の高さを下から上へ、上から下へ制御する CSS メソッド

よくある質問から議論を始めましょう。CSS を使用して要素の高さを [ブラウザ コンテンツ ウィンド...

Alibaba Cloud ECS サーバーでポート 8080 を開く方法

セキュリティ上の理由から、Alibaba Cloud Server ECS にはデフォルトで独自のセ...

Linuxシステムにおけるキー認証に基づくSSHサービスのプロセス

ご存知のとおり、SSH は現在、リモート ログイン セッションやその他のネットワーク サービスにセキ...

Linux で MySQL データベースのデータ ファイル パスを変更する手順

rpm インストール方法を使用して MySQL データベースをインストールした後、データ ファイルの...

MySQL の binlog ログと、binlog ログを使用してデータを回復する方法を説明します。

ご存知のとおり、binlog ログは MySQL データベースにとって非常に重要です。万が一、データ...

HTMLのリストタグを数える

1. <dl>はリストを定義し、<dt>はリスト内の項目を定義し、<d...

要素動的ルーティングブレッドクラムの実装例

マスターするには: localStorage、コンポーネントのカプセル化えーと、GIF に変換したビ...

dockerfile における ENTRYPOINT と CMD の組み合わせと違い

前回の記事【dockerコンテナのためのdockerfileを詳しく解説】では、dockerfile...

HTMLとは何ですか?

HTML 開発の歴史: HTML は英語で Hypertext Marked Language の...

Centos7でのSambaサーバー構成(実戦)

サンバの概要Samba は、Linux および UNIX システム上で SMB プロトコルを実装する...

Node.js+expressメッセージボード機能実装例

目次メッセージボード必要なライブラリオープンソースプロジェクトプロジェクト構造メッセージボードnod...

Baidu百科事典UIの開発動向について議論する

<br />百度百科事典の正式版がついにオンラインになりました。2年間の「テスト版」の帽...

Node.js における非同期プログラミングの知識ポイントの詳細な説明

導入JavaScript はデフォルトでシングルスレッドであるため、コードは並列実行するための新しい...

Angular のパフォーマンス最適化: サードパーティ コンポーネントと遅延読み込みテクノロジー

目次概要環境の準備プロジェクトのパフォーマンスに影響を与える要因遅延読み込みとは何ですか?プロジェク...