コンポーネントエイリアス
<b-form-timepicker>
は、以下のエイリアスでも使用できます。
<b-timepicker>
注:コンポーネントエイリアスは、BootstrapVue全体をインポートする場合、またはコンポーネントグループプラグインを使用する場合にのみ使用できます。
<b-form-timepicker>
は、BootstrapVue のカスタム時間選択入力フォームコントロールです。WAI-ARIA コンプライアンスと国際化サポートを提供します。
BootstrapVue v2.6.0
以降で使用可能です。
<b-time>
コンポーネントのフォームコントロールラッパーコンポーネントとして、追加のバリデーション状態の表示とコンパクトなインターフェースを提供します。ネイティブの HTML5 時間入力は、表示、アクセシビリティ、そして場合によっては一部のブラウザでサポートされていない点で異なります。<b-form-timepicker>
は、すべてのブラウザプラットフォームとデバイスで一貫性のあるアクセシブルなインターフェースを提供します。
<template>
<div>
<b-form-timepicker v-model="value" locale="en"></b-form-timepicker>
<div class="mt-2">Value: '{{ value }}'</div>
</div>
</template>
<script>
export default {
data() {
return {
value: ''
}
}
}
</script>
<!-- b-form-timepicker.vue -->
v-model
戻り値<b-form-timepicker>
は常に 'HH:mm:ss'
形式の文字列を返します。これはネイティブブラウザの <input type="time">
コントロールによって返される形式と同じです。値の範囲は '00:00:00'
から '23:59:59'
( 'h23'
時間サイクル構文を使用する24時間制)です。
時間が選択されていない場合、<b-form-timepicker>
は空の文字列 (''
) を返します。
disabled
プロパティを設定すると、<b-form-timepicker>
コンポーネントのすべてのインタラクションが削除されます。
readonly
プロパティを設定すると、時間の選択は無効になりますが、コンポーネントはインタラクティブなままになり、スピンボタン間をタブ移動できます。v-model
は読み取り専用の状態では更新されません。
<template>
<div>
<b-form-group
label="Select time picker interactive state"
v-slot="{ ariaDescribedby }"
>
<b-form-radio-group
v-model="state"
:aria-describedby="ariaDescribedby"
aria-controls="ex-disabled-readonly"
>
<b-form-radio value="disabled">Disabled</b-form-radio>
<b-form-radio value="readonly">Readonly</b-form-radio>
<b-form-radio value="normal">Normal</b-form-radio>
</b-form-radio-group>
</b-form-group>
<b-form-timepicker
id="ex-disabled-readonly"
:disabled="disabled"
:readonly="readonly"
></b-form-timepicker>
</div>
</template>
<script>
export default {
data() {
return {
state: 'disabled'
}
},
computed: {
disabled() {
return this.state === 'disabled'
},
readonly() {
return this.state === 'readonly'
}
}
}
</script>
<!-- b-form-timepicker-disabled-readonly.vue -->
<b-form-timepicker>
は、ブール値の state
プロパティを介して無効と有効のスタイルをサポートします。state
をブール値 false
に設定すると、入力が無効としてスタイル設定され、ブール値 true
に設定すると、有効としてスタイル設定されます。state
を null
に設定すると、バリデーション状態のスタイルは表示されません (デフォルト)。
<template>
<div>
<label for="timepicker-invalid">Choose a time (invalid style)</label>
<b-form-timepicker id="datepicker-invalid" :state="false" class="mb-2"></b-form-timepicker>
<label for="timepicker-valid">Choose a time (valid style)</label>
<b-form-timepicker id="datepicker-valid" :state="true"></b-form-timepicker>
</div>
</template>
<!-- b-form-timepicker-validation.vue -->
ネイティブブラウザのバリデーションは <b-form-timepicker>
では使用できません。
デフォルトでは、秒スピンボタンは表示されません。秒の選択を有効にするには、show-seconds
プロパティを true
に設定して、秒の選択スピンボタンを有効にします。show-seconds
が false の場合(または指定されていない場合)、返される値の秒の部分は常に 00
に設定されます。
<template>
<div>
<b-form-timepicker v-model="value" show-seconds locale="en"></b-form-timepicker>
<div class="mt-2">Value: '{{ value }}'</div>
</div>
</template>
<script>
export default {
data() {
return {
value: ''
}
}
}
</script>
<!-- b-form-timepicker-show-seconds.vue -->
より小さく、または大きく <b-form-timepicker>
コントロールしたいですか?size
プロパティを小さなフォームコントロールには 'sm'
、大きなフォームコントロールには 'lg'
に設定します。これは、ポップアップ時間選択ダイアログのサイズには影響しません。
<template>
<div>
<label for="timepicker-sm">Small time picker</label>
<b-form-timepicker id="timepicker-sm" size="sm" locale="en" class="mb-2"></b-form-timepicker>
<label for="timepicker-lg">Large time picker</label>
<b-form-timepicker id="timepicker-lg" size="lg" locale="en"></b-form-timepicker>
</div>
</template>
<!-- b-form-timepicker-control-size.vue -->
placeholder
プロパティを使用して、日付が選択されていない場合にコントロールにカスタムプレースホルダーテキストを追加します。プレースホルダーが指定されていない場合、label-no-time-selected
プロパティの値が使用されます。
<template>
<div>
<label for="timepicker-placeholder">Time picker with placeholder</label>
<b-form-timepicker id="timepicker-placeholder" placeholder="Choose a time" locale="en"></b-form-timepicker>
</div>
</template>
<!-- b-form-timepicker-placeholder.vue -->
now-button
プロパティまたは reset-button
プロパティを使用して、カレンダーポップアップの下部にオプションのコントロールボタンを追加します。デフォルトの閉じるボタンは、no-close-button
プロパティを使用して削除できます。
reset-value
プロパティの値(指定されている場合)に時刻を設定します。<template>
<div>
<label for="timepicker-buttons">Time picker with optional footer buttons</label>
<b-form-timepicker
id="timepicker-buttons"
now-button
reset-button
locale="en"
></b-form-timepicker>
</div>
</template>
<!-- b-form-timepicker-footer-buttons.vue -->
オプションのボタンのテキストは、label-now-button
、label-reset-button
、および label-close-button
プロパティで設定できます。フッターセクションの幅が限られているため、これらのラベルを短くすることをお勧めします。
ドロップダウンプロパティ right
、dropup
、dropright
、dropleft
、no-flip
、および offset
を使用して、ポップアップカレンダーの位置を制御します。
これらのプロパティの効果と使用方法の詳細については、<b-dropdown>
の位置決めに関するセクションを参照してください。
v2.7.0+
時間選択ダイアログを起動するボタンだけが必要な場合、または独自のオプションテキスト入力フィールドを提供したい場合は、button-only
プロパティを使用して、時間選択をドロップダウンボタンとしてレンダリングします。フォーマットされた時間ラベルは sr-only
クラスでレンダリングされます(スクリーンリーダーでのみ使用可能)。
次の簡単な例では、時間選択(ボタンのみモード)を <b-input-group>
に追加しています。
<template>
<div>
<label for="example-input">Choose a time</label>
<b-input-group class="mb-3">
<b-form-input
id="example-input"
v-model="value"
type="text"
placeholder="HH:mm:ss"
></b-form-input>
<b-input-group-append>
<b-form-timepicker
v-model="value"
button-only
right
show-seconds
locale="en"
aria-controls="example-input"
></b-form-timepicker>
</b-input-group-append>
</b-input-group>
<p>Value: '{{ value }}'</p>
</div>
</template>
<script>
export default {
data() {
return {
value: ''
}
}
}
</script>
<!-- b-form-timepicker-button-only.vue -->
size
プロパティでボタンのサイズを、button-variant
プロパティでボタンのバリアントを制御します。
時間インターフェースの国際化は、時間コントロールの要素に適用されるラベル(aria-ラベル、選択状態など)を除いて、Intl.DateTimeFormat
と Intl.NumberFormat
を介して提供されます。これらのラベルには独自の翻訳を提供する必要があります。使用可能なロケールはブラウザによって異なります(すべてのブラウザがすべてのロケールをサポートするわけではありません)。
デフォルトでは、<b-form-timepicker>
はブラウザのデフォルトのロケールを使用しますが、locale
プロパティを使用して使用するロケール(またはロケール)を指定できます。このプロパティは、単一のロケール文字列またはロケール文字列の配列(最も優先されるロケールから最も優先されないロケールまで順にリストされます)を受け入れます。
発信された 'context'
イベントには、時間コントロールが解決したロケール( Intl
のサポートされているロケールによっては、要求されたロケールとは異なる場合があります)が含まれます。
Node.js を使用する場合のサーバーサイドレンダリング (SSR) では、使用している Node.js ランタイムが Intl
と使用するロケールをサポートしていることを確認してください。詳細については、Node Intl サポートドキュメントを参照してください。
<template>
<b-row>
<b-col cols="12" class="mb-3">
<label for="example-locales">Locale:</label>
<b-form-select id="example-locales" v-model="locale" :options="locales"></b-form-select>
</b-col>
<b-col md="6">
<b-form-timepicker
v-model="value"
v-bind="labels[locale] || {}"
:locale="locale"
show-seconds
@context="onContext"
></b-form-timepicker>
</b-col>
<b-col>
<p>Value: <b>'{{ value }}'</b></p>
<p class="mb-0">Context:</p>
<pre class="small">{{ context }}</pre>
</b-col>
</b-row>
</template>
<script>
export default {
data() {
return {
value: '',
context: null,
locale: 'en-US',
locales: [
{ value: 'en-US', text: 'English US (en-US)' },
{ value: 'de', text: 'German (de)' },
{ value: 'ar-EG', text: 'Arabic Egyptian (ar-EG)' },
{ value: 'zh', text: 'Chinese (zh)' }
],
labels: {
de: {
labelHours: 'Stunden',
labelMinutes: 'Minuten',
labelSeconds: 'Sekunden',
labelIncrement: 'Erhöhen',
labelDecrement: 'Verringern',
labelSelected: 'Ausgewählte Zeit',
labelNoTimeSelected: 'Keine Zeit ausgewählt',
labelCloseButton: 'Schließen'
},
'ar-EG': {
labelHours: 'ساعات',
labelMinutes: 'الدقائق',
labelSeconds: 'ثواني',
labelAmpm: 'صباحا مساء',
labelAm: 'ص',
labelPm: 'م',
labelIncrement: 'زيادة',
labelDecrement: 'إنقاص',
labelSelected: 'الوقت المحدد',
labelNoTimeSelected: 'لا وقت المختار',
labelCloseButton: 'قريب'
},
zh: {
labelHours: '小时',
labelMinutes: '分钟',
labelSeconds: '秒',
labelAmpm: '上午下午',
labelAm: '上午',
labelPm: '下午',
labelIncrement: '增量',
labelDecrement: '减量',
labelSelected: '选定时间',
labelNoTimeSelected: '没有选择时间',
labelCloseButton: '关'
}
}
}
},
methods: {
onContext(ctx) {
this.context = ctx
}
}
}
</script>
<!-- b-form-time-i18n.vue -->
hourCycle
の理解世界中で使用されている時間体系(時計)には、12時間制と24時間制の2つの主なタイプがあります。hourCycle
プロパティを使用すると、特定のロケールで使用される時計の種類にアクセスできます。時間サイクルの種類にはいくつかの異なる値があり、以下の表にリストされています。hourCycle
は、時間 '00:00:00'
(1日の始まり)を特定のロケールのユーザーにどのように表示/フォーマットするべきかを知らせます。'context'
イベントには、解決済みの hourCycle
値が含まれています。
hourCycle | 説明 |
---|---|
'h12' | 1 ~12 を使用する時間システム。午前12時00分から始まる12時間制。 |
'h23' | 0 ~23 を使用する時間システム。午前0時00分から始まる24時間制。 |
'h11' | 0 ~11 を使用する時間システム。午前0時00分から始まる12時間制。 |
'h24' | 1 ~24 を使用する時間システム。午前24時00分から始まる24時間制。 |
ネイティブ HTML5 <input type="date">
は 'h23'
形式で時間値を返し、<b-form-timepicker>
も 'h23'
形式で v-model を返します。この値は、選択されたロケール によって、<b-form-timepicker>
コンポーネントの GUI(スピンボタン)にユーザーに表示されるものとは異なる場合があります。
注記:IE 11 はロケールの hourCycle
値の解決をサポートしていません。そのため、解決済みの hour12
値に基づいて h12
または h23
のいずれかを想定しています。
12時間表記と24時間表記のどちらを使用するかは、クライアントブラウザのデフォルトロケール(または`locale
プロパティから解決されたロケール)によって決まります。12時間表記のユーザーインターフェースを強制するには、プロパティ`hour12
を`true
に設定します。24時間表記のユーザーインターフェースを強制するには、プロパティ`hour12
を`false
に設定します。プロパティ`hour12
のデフォルト値は`null
であり、解決されたロケールを使用して使用するインターフェースを決定します。
`hour12
`プロパティの設定は、時間スピンボタンのフォーマットに使用するhourCycle
に影響します。これは時間スピンボタンのフォーマットに影響する可能性がありますが、フォーマットされた時間文字列の結果は、特定のロケールに対するクライアント`Intl.DateTimeFormat
`のサポートの制限により、`'h12
`または`'h23'
`の形式で表示される可能性があります。したがって、**ロケールのデフォルトの時間/時刻のフォーマットを表示するために、`hour12
`プロパティを`null
(デフォルト)に設定しておくことをお勧めします**。
ポップアップ時刻は、<b-time>
と同じキーボードコントロールをサポートしており、さらに以下の機能があります。
タイムピッカーを国際化する場合、国際的なスクリーンリーダーユーザーが正しいプロンプトと説明を聞くことができるように、`label-*
`プロパティを適切に翻訳された文字列に更新することが重要です。
詳細については、<b-time>
のドキュメントを参照してください。
<b-form-timepicker>
は、コンポーネント<b-time>
と<b-dropdown>
に基づいています。
<b-form-timepicker>
は、Bootstrapのボーダーとフレックスのユーティリティクラス、ボタン(`btn-*
`)クラス、ドロップダウン(`dropdown*
`)クラス、および`form-control*
`(および検証)クラスを使用します。タイムピッカーとポップアップを適切にスタイル設定するためには、BootstrapVueのカスタムSCSS/CSSも必要です。
<b-form-timepicker>
コンポーネントエイリアス<b-form-timepicker>
プロパティ<b-form-timepicker>
v-model<b-form-timepicker>
スロット<b-form-timepicker>
イベント<b-form-timepicker>
は、以下のエイリアスでも使用できます。
<b-timepicker>
注:コンポーネントエイリアスは、BootstrapVue全体をインポートする場合、またはコンポーネントグループプラグインを使用する場合にのみ使用できます。
すべてのプロパティのデフォルト値は、グローバルに設定可能です。
プロパティ (昇順でソートするにはクリック) | 型 (昇順でソートするにはクリック) | デフォルト | 説明 |
---|---|---|---|
aria-labelledby | 文字列 | このコンポーネントのラベルを提供する要素のID。`aria-labelledby`属性の値として使用されます。 | |
boundary | HTMLElement またはString | 'scrollParent' | メニューの境界制約:「`'scrollParent'`」、「`'window'`」、「`'viewport'`」、または`HTMLElement`への参照。 |
button-only v2.7.0+ | ブール値 | false | 日付ピッカーをフォームコントロールではなくドロップダウンボタンとしてレンダリングします。 |
button-variant v2.7.0+ | 文字列 | 'secondary' | `button-only`プロパティが設定されていない場合、効果はありません。`button-only`モードで使用されるボタンの変種。 |
close-button-variant | 文字列 | 'outline-secondary' | オプションの`close`ボタンに使用するボタンの変種。 |
disabled | ブール値 | false | タイムピッカーを非対話型の無効状態にします。 |
dropleft | ブール値 | false | 設定されている場合、メニューをボタンの左側に配置します。 |
dropright | ブール値 | false | 設定されている場合、メニューをボタンの右側に配置します。 |
dropup | ブール値 | false | 設定されている場合、メニューをボタンの上部に配置します。 |
footer-tag | 文字列 | 'footer' | フッターのデフォルトタグの代わりにレンダリングするHTMLタグを指定します。 |
form | 文字列 | フォームコントロールが属するフォームのID。コントロールの`form`属性を設定します。 | |
header-tag | 文字列 | 'header' | ヘッダーのデフォルトタグの代わりにレンダリングするHTMLタグを指定します。 |
hide-header | ブール値 | false | 設定されている場合、選択された時刻のヘッダーを視覚的に非表示にします。 |
hour12 | ブール値 | null | 3状態のプロパティ。`true`の場合、インターフェースを12時間形式に強制します。`false`の場合、インターフェースを24時間形式に強制します。`null`の場合、現在のロケールによって12時間または24時間インターフェースが決定されます(デフォルト)。 |
id | 文字列 | レンダリングされたコンテンツの`id`属性を設定するために使用され、必要に応じて追加の要素IDを生成するためのベースとして使用されます。 | |
label-am | 文字列 | 'AM' | 'AM'が選択されている場合、AM/PMスピンボタンに表示されるテキスト。 |
label-ampm | 文字列 | 'AM/PM' | AM/PMスピンボタンの`aria-label`属性の値。 |
label-close-button | 文字列 | 'Close' | `Close`ボタンのコンテンツ。 |
label-decrement | 文字列 | 'Decrement' | スピンボタンの`-`ボタンの`aria-label`属性の値。 |
label-hours | 文字列 | 'Hours' | `Hours`スピンボタンの`aria-label`属性の値。 |
label-increment | 文字列 | 'Increment' | スピンボタンの`+`ボタンの`aria-label`属性の値。 |
label-minutes | 文字列 | 'Minutes' | `Minutes`スピンボタンの`aria-label`属性の値。 |
label-no-time-selected | 文字列 | 'No time selected' | 時刻が選択されていない場合に表示する文字列。 |
label-now-button | 文字列 | 'Select now' | オプションの`Select now`ボタンのコンテンツ。 |
label-pm | 文字列 | 'PM' | 'PM'が選択されている場合、AM/PMスピンボタンに表示されるテキスト。 |
label-reset-button | 文字列 | 'Reset' | オプションの`Reset`ボタンのコンテンツ。 |
label-seconds | 文字列 | 'Seconds' | `Seconds`スピンボタンの`aria-label`属性の値。 |
label-selected | 文字列 | 時刻が選択されている場合に非表示になるsr-only文字列。 | |
locale | Array またはString | コンポーネントが使用するロケール(またはロケール)。ロケールの配列を渡す場合、ロケールの順序は最も優先されるロケールから最も優先されないロケールになります。指定されていない場合、クライアントのデフォルトロケールが使用されます。 | |
menu-class | Array またはObject またはString | ポップアップメニューラッパーに適用するクラス(またはクラス)。 | |
minutes-step | Number またはString | 1 | 分スピンボタンのステップ値。60で均等に分割できる値にする必要があります。 |
name | 文字列 | フォームコントロールの`name`属性の値を設定します。 | |
no-close-button | ブール値 | false | 設定されている場合、閉じるボタンの表示を無効にします。 |
no-flip | ブール値 | false | メニューが自動的に位置を反転するのを防ぎます。 |
now-button | ブール値 | false | 設定されている場合、オプションの`select now`ボタンが表示されます。 |
now-button-variant | 文字列 | 'outline-primary' | オプションの`select today`ボタンに使用するボタンの変種。 |
offset | Number またはString | 0 | メニューをシフトするピクセル数を指定します。負の値もサポートされます。 |
placeholder | 文字列 | 日付が選択されていない場合にフォームコントロールに表示するテキスト。`label-no-date-selected`プロパティ値がデフォルトです。 | |
popper-opts | オブジェクト | {} | Popper.jsに渡す追加の設定。 |
readonly | ブール値 | false | タイムピッカーを対話型の読み取り専用状態にします。`v-model`の更新を無効にしますが、スピンボタンへのフォーカスは許可されます。 |
required | ブール値 | false | 設定されている場合、コンポーネントに`aria-required="true"`属性を追加します。必須の検証はアプリケーションで処理する必要があります。 |
reset-button | ブール値 | false | 設定されている場合、オプションの`reset`ボタンが表示されます。 |
reset-button-variant | 文字列 | 'outline-danger' | オプションの`reset`ボタンに使用するボタンの変種。 |
reset-value | Date またはString | オプションの`reset`ボタンをクリックすると、選択された時刻がこの値に設定されます。デフォルトでは、選択された値がクリアされます。 | |
right | ブール値 | false | メニューの右端をボタンの右端に揃えます。 |
seconds-step | Number またはString | 1 | 秒スピンボタンのステップ値。60で均等に分割できる値にする必要があります。 |
show-seconds | ブール値 | false | 真の場合、秒のスピンボタンを表示します。偽の場合、秒のスピンボタンは表示されず、時間の秒の部分は常に`0`になります。 |
サイズ | 文字列 | コンポーネントの外観サイズを設定します。 'sm'、'md'(デフォルト)、または'lg' | |
状態 | ブール値 | null | コンポーネントの検証状態の外観を制御します。有効な場合は`true`、無効な場合は`false`、検証状態がない場合は`null` |
値 v-model | 文字列 | '' | 最初に選択された時間値。`HH:mm:ss`形式の文字列を受け入れます。有効な値の範囲は`00:00:00`から`23:59:59`です。 |
v-model
プロパティ | イベント |
---|---|
値 | 入力 |
名前 | スコープ付き | 説明 |
---|---|---|
button-content | タイマーピッカーのアイコンボタンに配置するコンテンツ |
イベント | 引数 | 説明 |
---|---|---|
コンテキスト |
| `b-time`コンテキストイベント。ユーザーがマウスまたはカーソル操作でスピンボタンの値を変更したときに発生します。コンポーネントが最初にインスタンス化されたとき、またはロケールが変更されたときにも発生します。 |
hidden v2.9.0+ | ピッカーポップアップが非表示になったときに発生します。 | |
入力 |
| v-modelを更新するときに発生します。 |
shown v2.9.0+ | ピッカーポップアップが表示されたときに発生します。 |
次の名前付きエクスポートを使用して、個々のコンポーネントをプロジェクトにインポートできます。
コンポーネント | 名前付きエクスポート | インポートパス |
---|---|---|
<b-form-timepicker> | BFormTimepicker | bootstrap-vue |
例
import { BFormTimepicker } from 'bootstrap-vue' Vue.component('b-form-timepicker', BFormTimepicker)
このプラグインには、上記にリストされているすべての個々のコンポーネントが含まれています。プラグインには、コンポーネントのエイリアスも含まれています。
名前付きエクスポート | インポートパス |
---|---|
FormTimepickerPlugin | bootstrap-vue |
例
import { FormTimepickerPlugin } from 'bootstrap-vue' Vue.use(FormTimepickerPlugin)