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

推薦する

VMware、nmap、burpsuite インストール チュートリアル

目次VMware バープスイート1. 仮想マシンイメージとVMwareのインストールと使用2. 仮想...

Docker Compose の実践とまとめ

Docker Compose は、Docker コンテナ クラスターのオーケストレーションを実現しま...

Nginx+Keepalived でデュアルマシン マスターとバックアップを実装する方法

序文まず、高性能サーバーの高可用性またはホットスタンバイソリューションである Keepalived ...

MySQL でよく使われる連結文のまとめ

はじめに: MySQL では、CONCAT() 関数を使用して複数の文字列を 1 つの文字列に連結し...

ReactRouterの実装

ReactRouterの実装ReactRouterはReactのコアコンポーネントです。主にReac...

テーブルタグ(テーブル)詳細

<br />テーブルは、昔から誰もが使ってきたタグで、今も使われています。しかし、現在の...

いくつかの CSS3 タグの短縮形 (推奨)

border-radius: CSS3 丸い角構文: border-radius: 25px;楕円...

MySQL でのフィルター条件なしのカウントの詳細な説明

カウント(*)成し遂げる1. MyISAM: テーブル内の行の総数をディスク上に保存し、フィルタリン...

CSS スタイルを使用して表のフォントを垂直中央に配置する方法

CSS スタイルを使用して表内のフォントを垂直方向に中央揃えする方法は次のとおりです。下図のようなカ...

CentOS 7.2 に SuPHP をインストールするための詳細な手順

デフォルトでは、CentOS 7 上の PHP は apache または nobody として実行さ...

MySql5.7.18 の文字セット構成の詳細なグラフィック説明

背景:かなり前(2017.6.5、記事にはタイムリーさがあり、特に使用されているツールは頻繁に更新さ...

MySQL データベース アカウントの作成、認証、データのエクスポートおよびインポート操作の例

この記事では、MySQL データベースでのアカウントの作成、認証、データのエクスポートおよびインポー...

MySQL SQL文を最適化するためのヒント

十分に最適化されていない、またはパフォーマンスが極端に低い SQL ステートメントに直面した場合、通...

Vueにおける仮想DOMの理解のまとめ

これは本質的に、ビュー インターフェース構造を記述するために使用される共通の js オブジェクトです...