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 環境の構築

推薦する

インスタンス化されたオブジェクトパラメータによるMySQLクエリ例の説明

この記事では、オブジェクト パラメータをインスタンス化して MySQL でデータをクエリする方法を紹...

Ubuntu 18.04 は pyenv、pyenv-virtualenv、virtualenv、Numpy、SciPy、Pillow、Matplotlib をインストールします

1. 現在、Pythonのバージョン管理ツールは数多く存在します。その中でも比較的使いやすいのがPy...

ES6 Promiseの使い方の詳細な説明

目次約束とは何ですか?拒否の使用法キャッチの使い方すべての使用法レースの使用約束とは何ですか? Pr...

JavaScript で配列遅延評価ライブラリを実装する方法

目次概要達成方法具体的な実装評価関数の終了を決定する生成関数の範囲変換関数マップフィルター割り込み機...

CSS 前景と背景の自動カラーマッチング技術の紹介 (デモ)

1. カラーマッチング効果のプレビュー下の GIF に示すように、ボタンの背景色が徐々に薄くなると...

トピックページデザインの 5 つの基本スキル (Alibaba UED Shanmu)

このトピックは、2012 年後半の社内共有です。まだ記事にはなっていませんが、春節が近づいているので...

Tomcatのサーバーオプションの詳細な説明

1. 構成デフォルトでは、最初の 2 つはチェックされていないので、チェックする必要があります。 (...

iframe の多層ネスト、無制限のネスト、高度に適応したソリューション

ページ A、B、C の 3 つがあります。ページ A にはページ B が含まれ、ページ B にはペー...

フォント宝庫 50 種類の素晴らしい無料英語フォントリソース パート 2

デザイナーは独自のフォント ライブラリを持っているため、プロジェクトの設計時にすぐに使用できます。今...

Pythonは出力をcsv操作に書き込む

以下のように表示されます。 def test_write(self): フィールド=[] field...

JavaScriptはPromiseを使用して複数の繰り返しリクエストを処理します

1. なぜこの記事を書くのですか?重複リクエストの処理に関する記事をたくさん読んだことがあるでしょう...

VMware 仮想マシンに CentOS と Qt をインストールするチュートリアル図

VMware のインストールパッケージのインストールダウンロードアドレス: https://www....

HTMLの基礎を詳しく解説(第2部)

1. リストリスト ulコンテナーには、一貫した構造とスタイルを持つテキストまたはグラフの形式が読...

VMWare仮想マシンにCentOS7システムをインストールする詳細な手順

インストール前の作業: VMware Workstation がインストールされていることを確認し、...

MySQLのクラスタ化インデックスと非クラスタ化インデックスの詳細な説明

1. クラスター化インデックステーブル データはインデックスの順序で保存されます。つまり、インデック...