Vueは、選択した月に応じて日付に対応する曜日を動的に表示します。

Vueは、選択した月に応じて日付に対応する曜日を動的に表示します。

私たち謙虚なプログラマーは、今でもこう歌わなければなりません。「あなたも私も、この世に生まれて、一日中忙しく、一瞬の休息もない人間です。私たちは不死ではないので、雑念にとらわれてしまいます。私たちは心配事を脇に置いて、給料を真ん中に置きます。保険に加入せずに昼夜を問わず残業しているハゲで太った男が何人いるでしょうか。」

抵抗し続けてきたが、一度も効果がなかった。大物上司にとっては夢が叶うのに、我々にとっては我々の夢が非難される原因になるのです!

苦情が山ほどあったにもかかわらず、私はまだ責任を負い、残業して、コーディングを続けなければなりません。 ! !

さあ、タイトルに書いた効果を実現しましょう。

原理は実はとてもシンプルです。まず、年と月を選択するための入力ボックスが必要です。ここでは、Element の DatePicker 日付セレクター コンポーネントを使用します。使い方の詳細については説明しません。Element の API を自分で調べてください。

次に、選択した月に応じて、現在の月の各日が動的に表示されます。ここでは、日付オブジェクトの 2 つのメソッド、setMonth と setDate が使用されます。

月を設定するには、setMonth(month, day) メソッドを使用します。パラメータは次のように記述されます。
月: 必須。月を表す数値。0 (1 月) から 11 (12 月) まで。
日: オプション。現地時間で月の日を表す 1 ~ 31 の数値。 EMCAScript が標準化される前は、このパラメータはサポートされていませんでした。

setDate(day) メソッドは、月の日を設定するために使用されます。パラメータは次のとおりです。
日: 必須。月の日付を表す数値 (1 ~ 31)。

具体的なコードは次のとおりです。

<テンプレート>
 <div>
  <el-date-picker v-model="month" type="month" @change="monthChange" placeholder="月を選択" />
  <p>
   月の各日:
   <span v-for="item in everyDay" :key="item" style="margin-right:10px;">{{item}}</span>
  </p>
 </div>
</テンプレート>

<スクリプト>
エクスポートデフォルト{
 データ() {
  戻る {
   月: ""、
   毎日: []
  };
 },
 マウントされた(){
  date = new Date()、month = date.getMonth(); とします。
  this.getEveryDay(日付、月);
 },
 メソッド: {
  月変更(日付) {
   日付を取得します。
  },
  getEveryDay(日付、月) {
   //月を設定します date.setMonth(month + 1);
   // 月の日付を設定します - ゼロに設定すると、日付の日付は月の最終日になります (たとえば、2 月は 28 または 29、他の月は 30 または 31)。これは、次のループ date.setDate(0); に便利です。
   dayArry = [] とします。
   // 月の日付を取得します。let day = date.getDate();

   (i = 1; i <= day; i++ とします) {
    date.setDate(i); // 現在選択されている月のすべての日だけを取得したい場合は、date.setDate(i) は必要ありません。dayArry.push(i) のみで十分です。date.setDate(i) は現在の月のすべての日を設定します。dayArry.push(i + ' ' + this.getWeekday(date.getDay())); // 選択した月のすべての日と曜日}

   this.everyDay = dayArry;
  },
  getWeekday(曜日){
   ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"][day] を返します。
  },
 }
};
</スクリプト>

表示効果は以下のとおりです。

getMonth メソッドによって返される値は 0 から始まるため、正しい月を取得するには、返された値に 1 を加算する必要があることに注意してください。 setDate には特別な点があり、詳しく説明する必要があります。setDate は、月の特定の日を設定するために使用されます。たとえば、setDate(1) は月の最初の日を設定し、setDate(10) は月の 10 日目を設定します。しかし、よく知られている理由により、1 か月は 28 日、29 日、30 日、または 31 日になる場合があります。自分で判断するコードを記述すると、面倒すぎます。このとき、setDate(0) のすばらしさが明らかになります (公式の setDate パラメーターは 1 から 31 の間で、0 は無慈悲に放棄されます。このとき、リン兄弟は悲しげに歌っています: 無慈悲な世界、無慈悲なあなた、あなたは私をあなたの手の中のゴミのように扱います)。setDate(0) は、この日が 28、29、30、または 31 のいずれであっても、月の最終日に設定され (リン兄弟はこのとき叫びました: あなたは前は私を無視していましたが、今は私に余裕がありません!)、次に getDate メソッドを使用して、設定した月の最終日を取得します。最後に、for ループを配置し、各日を配列に入れて、1 日を終えることができます。

もちろん、各曜日に対応する曜日を表示せず、土曜日と日曜日に対応する 2 日間だけを赤で表示することもできます。コードには、少し変更を加えるだけで済みます。

<テンプレート>
 <div style="margin:50px;">
  <el-date-picker v-model="month" type="month" @change="monthChange" placeholder="月を選択" />
  <p style="margin-top:10px;">
   月ごとの各日:
   <span v-for="item in everyDay" :key="item" style="margin-right:10px;" v-html="item"></span>
  </p>
 </div>
</テンプレート>

<スクリプト>
エクスポートデフォルト{
 データ() {
  戻る {
   月: ""、
   毎日: []
  };
 },
 マウントされた(){
  date = new Date(), month = date.getMonth(); とします。
  this.getEveryDay(日付、月);
 },
 メソッド: {
  月変更(日付) {
   日付を取得します。
  },
  getEveryDay(日付、月) {
   //月を設定します date.setMonth(month + 1);
   // 月の日付を設定します - ゼロに設定すると、日付の日付は月の最終日になります (たとえば、2 月は 28 または 29、他の月は 30 または 31)。これは、次のループ date.setDate(0); に便利です。
   dayArry = [] とします。
   // 月の日付を取得します。let day = date.getDate();

   (i = 1; i <= day; i++ とします) {
    日付を設定します。
    date.getDay() == 0 || date.getDay() == 6 の場合{
     dayArry.push('<i class="red">' + i + '</i>');
    }それ以外{
     dayArry.push(i);
    }
   }

   this.everyDay = dayArry;
  },
 }
};
</スクリプト>
<スタイル>
.red{色:赤;フォントスタイル:通常;}
</スタイル>

表示効果は以下のとおりです。

著者: 小淮

出典: http://tnnyang.cnblogs.com

上記は、Vue が選択した月に応じて日付に対応する曜日を動的に表示する方法についての詳細です。Vue が月を選択して日付を動的に表示する方法についての詳細は、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • Vueはフィルターを使用して日付をフォーマットします
  • vue-calendar-component は、複数日付選択コンポーネントのサンプルコードをカプセル化します。
  • Antデザインvue datepicker日付セレクター中国語操作
  • Ant Design Vue で日付選択ボックスと時間セレクターを組み合わせて使用​​するための手順
  • Vue フィルターの完璧な時間と日付のフォーマット コード
  • Vue はバックグラウンド データのタイムスタンプを日付形式に変換します
  • Vue はタイムスタンプを日付形式に変換するコード例を取得します
  • Vue フィルターを使用してタイムスタンプを標準の日付形式にフォーマットする方法

<<:  プロファイルを使用して遅い SQL を分析する MySQL の詳細な説明 (グループ左結合はサブクエリよりも効率的です)

>>:  Centos7 システムでの .NET Core 2.0 + Nginx + Supervisor 環境の構築

推薦する

js メモリ リークのシナリオ、それらを詳細に監視および分析する方法

目次序文どのような状況でメモリリークが発生する可能性がありますか? 1. 偶発的なグローバル変数2....

MySQL共通ストレージエンジンの機能と使用方法の詳細な説明

この記事では、一般的な MySQL ストレージ エンジンの機能と使用方法を例を使って説明します。ご参...

MySQL InnoDB MRR 最適化ガイド

序文MRR は Multi-Range Read の略で、ランダム ディスク アクセスを削減し、ラン...

Dockerコンテナを更新、パッケージ化、Alibaba Cloudにアップロードする方法

今回は、実行中のコンテナをイメージにパッケージ化して Alibaba Cloud にアップロードし、...

Html+CSS 描画三角形アイコン

まずはレンダリングを見てみましょう: XML/HTML コードコンテンツをクリップボードにコピー&l...

MySQL の冗長インデックスと重複インデックスの詳細な説明

MySQL では、同じ列に複数のインデックスを作成できます。意図的であるかどうかにかかわらず、MyS...

HTML テーブルタグについての簡単な説明

主にその構造といくつかの重要な特性について説明します。少しずつ改善しながら紹介していきます。 1) ...

MySQL 5.7.22 バイナリパッケージのインストールとインストール不要版 Windows 設定方法

次のコードは、MySQL 5.7.22 バイナリ パッケージのインストール方法を紹介しています。具体...

サーバー上で selenium+chromedriver を実行するための詳細なチュートリアル

1. はじめにSelenium を使用して Web サイトからデータをスクレイピングしたいのですが、...

メモリの原則に関する詳細な説明: JS では変数はヒープに保存されるのか、スタックに保存されるのか?

目次1. 冷蔵庫に入りきらない象2. シャドウクローン文字列3. 実際に見た「奇妙なボール」 4. ...

Node.jsはMySQLデータベースの実戦記録を追加、削除、変更、チェックします

目次プロジェクトでデータベースを操作する3つのステップデータベースを操作するための具体的な手順1: ...

使用状況分析を備えたMySQL

持つことの使用法having 句を使用すると、グループ化後にさまざまなデータをフィルター処理できます...

ウェブページの最も基本的なコード

◆お気に入りに追加例示するクリックすると、ブラウザのお気に入りメニューにウェブサイトが追加されます...

Linux でのファイル コンテンツの重複排除と交差と差異の実装

1. データ重複排除日常業務では、Hive や Impala を使用してクエリとエクスポートを行う際...