🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Q&A

解決済

2回答

1679閲覧

vuejs-datepicker の 選択制御に変数を使用したい

frntta

総合スコア5

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

0グッド

0クリップ

投稿2019/11/12 14:41

標題の通り、以下サンプルコードを記載します

<template> <div id="app"> <Datepicker :value="this.default" :format="DatePickerFormat" :language="ja" :disabled-dates="disabledDates" :highlighted="highlighted"></Datepicker> </div> </template> <script> import Datepicker from 'vuejs-datepicker'; import { ja } from 'vuejs-datepicker/dist/locale'; export default { name: 'sample', components: { Datepicker, }, data() { return { default: 'yyy/mm/dd', DatePickerFormat: 'yyyy年MM月dd日', input: '', todos: [{}], ja, disabledDates: { to: new Date(5日後〜), }, highlighted: { days: [6, 0], // 曜日を設定 }, }; }, computed: { getYear() { const year = new Date(); return year.getFullYear(); }, }, }; </script>

課題

① disabledDates: {
to: new Date(5日後以降選択可能にしたい),
},
のnew Date()の引数に変数を入れることができない
②休日は5日に含まないようにしたい(平日のみ)

試してみたこと

disabledDates: { to: new Date(this.getYear), },

試しに、上記のようにしてみましたが、ダメでした。

何卒よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Vue コンポーネントの data はその名の通りデータそのものを定義する項目で、ここでは computed 項目などのように this が vue インスタンスを参照していません。

他の computed プロパティを参照して値を作りたい場合は、以下のように computed に記載してください。

javascript

1export default { 2 data() { 3 return { 4 5 } 6 }, 7 computed: { 8 getYear() { 9 const year = new Date(); 10 return year.getFullYear(); 11 }, 12 disabledDates() { 13 return { 14 to: new Date(this.getYear) 15 } 16 } 17 } 18}

また、別の方の回答にある通り、年を指定して Date インスタンスを作成する場合は new Date() の引数に月、日も指定してください。数値一つのみを与えた場合、それは1970年01月01日 00:00:00 UTC からの経過ミリ秒数と判断されて遥か昔の日付を表す Date オブジェクトが作成されてしまいます。

5日後の計算については、ループを回して平日か確認しながら日付を加算していけばいいと思います。
こちらについては現状質問が丸投げ状態になってしまっていますので、このあたり を参考に作成してみて、判らない部分がありましたら改めて質問されるとよいと思います。

投稿2019/11/12 15:07

R.Mizukami

総合スコア1086

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

https://www.npmjs.com/package/vuejs-datepicker

こちらのライブラリでしたら以下のようなコードがサンプルにありました。
注)月は0から始まります。

to: new Date(2016, 0, 5)

new Date() のコンストラクタに渡す引数のフォーマットは以下に記載があります。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

new Date(); new Date(value); new Date(dateString); new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]);

投稿2019/11/12 14:48

編集2019/11/12 14:49
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問