Skip to main content
Version: v8

ion-datetime

shadow

Datetimeはカレンダーとタイムホイールのインターフェイスを表示し、ユーザーが簡単に日付と時刻を選択できるようにします。Datetimeはネイティブの datetime-localinput 要素と似ていますが、Ionic FrameworkのDatetimeコンポーネントを使用すると、好みのフォーマットで日付と時刻を表示したり、datetimeの値を管理することが簡単にできます。

概要

これまで、JavaScriptやHTMLの入力でdatetimeの値を扱うことは、常に困難でした。 入力でさえも、常に課題でした。 特に、JavaScriptの Date オブジェクトは、datetime文字列を正しく解析したり、datetime値をフォーマットしたりするのが難しいことで有名です。 さらに悪いことに、ブラウザやJavaScriptのバージョンによって、 特にロケールごとに様々なdatetime文字列の解析が異なるのです。

Ionic Frameworkのdatetimeは、開発者が一般的な落とし穴を回避できるように設計されており、 開発者は簡単にdatetime値を操作し、ユーザーにシンプルなdatetimeピッカーを提供し、素晴らしいユーザーエクスペリエンスを提供することができます。

ISO 8601 Datetime Format: YYYY-MM-DDTHH:mmZ

Ionic Frameworkでは、ISO 8601 datetime format を値として使用します。 この値は、JavaScriptの Date オブジェクトを使用するのではなく、単純に文字列として使用されます。 ISO datetimeフォーマットを使用することで、 JSONオブジェクトやデータベース内でのシリアライズやパースが容易になります。

以下は、 ion-datetime で使用できる ISO 8601 フォーマットの例です:

DescriptionFormatDatetime Value Example
YearYYYY1994
Year and MonthYYYY-MM1994-12
Complete DateYYYY-MM-DD1994-12-15
Date and TimeYYYY-MM-DDTHH:mm1994-12-15T13:47
UTC TimezoneYYYY-MM-DDTHH:mm:ssZ1994-12-15T13:47:20Z
Timezone OffsetYYYY-MM-DDTHH:mm:ssTZD1994-12-15T13:47:20+05:00
Hour and MinuteHH:mm13:47

年号は常に4桁、ミリ秒は(加算される場合は)常に3桁、その他は常に2桁であることに注意してください。 ミリ秒は3桁、その他は2桁である。 ですから、1月を表す数字には 1月を表す数字には常に先頭のゼロ、例えば01が付きます。 また、時刻は常に24時間表示で、 12時間表示の時計では「00」は「午前12時」、「13」は「午後1時」、「23」は「午後3時」を意味します。

note

秒、ミリ秒、タイムゾーンは ISO 8601 datetime フォーマットで指定できますが、 ion-datetime は秒、ミリ秒、タイムゾーンを選択するためのインターフェイスを提供しません。秒、ミリ秒、タイムゾーンの値を指定しても無視されます。

基本的な使い方

日付ボタンと使う

モーダルやポップオーバーなどのオーバーレイで日付時刻を表示する必要がある場合は、 ion-datetime-button を使用することをお勧めします。スペースに制約がある場合は、 ion-datetime-button を使用する必要があります。このコンポーネントは、現在の日付と時刻の値を表示するボタンを表示します。ボタンがタップされると、日付と時刻のピッカーがオーバーレイで表示されます。

非同期に値を設定する

すでにdatetimeが作成された後にプログラムでvalueが更新されると、datetimeは自動的に新しい日付にジャンプします。しかし、ユーザーがdatetimeを操作しているときに、この方法でvalueを更新することは避けることをお勧めします。例えば、datetimeのvalueが非同期処理で読み込まれる場合、値の更新が終わるまでCSSでdatetimeを非表示にすることをお勧めします。

日付コンテナ

日付の最小値と最大値

日付の最小値と最大値をカスタマイズするには、 minmax コンポーネントプロパティを使用します。上の表にあるのと同じ IS0 8601 フォーマットに従って、各コンポーネントはユーザーが選択できる日付を制限することができます。

以下の例では、日付の選択を2022年3月から2022年5月のみに制限しています。

特定の値を選択する

minmax プロパティでは、日付の選択をある範囲に制限することができますが、 monthValues, dayValues, yearValues, hourValues, minuteValues プロパティでは、ユーザーが選択できる特定の日や時刻を選択することが可能です。

次の例では、15分単位で分を選択することができます。また、日付を5刻みで選択することができます。

高度な日付制限

isDateEnabled プロパティを使用すると、開発者は ion-datetime をカスタマイズして、ISO 8601 の日付文字列を使用して、特定の日、日付の範囲、週末、または任意のカスタムルールを無効にすることができる。 isDateEnabled` プロパティは、日付が有効かどうかを示すブール値を返す関数を受け付ける。この関数は、レンダリングされた各日付、前月、当月、翌月に対して呼び出されます。カスタムの実装では、ジャンクを避けるためにパフォーマンスを最適化する必要があります。

次の例では、週末の日付をすべて無効にする方法を示しています。より高度な日付操作を行うには、 date-fns のような日付ユーティリティを使用することをお勧めします。

ローカライゼーション

Ionic Frameworkでは、Intl.DatetimeFormat Web APIを利用して、ユーザーの端末に設定されている言語や地域に応じて、月名と曜日名を自動的にローカライズすることが可能です。

カスタムロケール

特定のロケールが必要な場合、 locale プロパティを使用して設定することができます。ロケールは、表示される言語と日付・時刻のフォーマットの両方を制御します。

次の例では、ロケールをスペイン語(Spanish)に設定する方法を示しています。

note

時刻の表記は、自動的にローカライズされません。詳しくは Time Label を参照してください。

時間サイクル

ion-datetime は、デフォルトで locale プロパティで指定された時間サイクルを使用します。例えば、 localeen-US に設定されている場合、 ion-datetime は12時間のサイクルを使用します。

時間サイクルには4つのタイプがあります。

Hour cycle typeDescription
'h12'Hour system using 1–12; corresponds to 'h' in patterns. The 12 hour clock, with midnight starting at 12:00 am.
'h23'Hour system using 0–23; corresponds to 'H' in patterns. The 24 hour clock, with midnight starting at 0:00.
'h11'Hour system using 0–11; corresponds to 'K' in patterns. The 12 hour clock, with midnight starting at 0:00 am.
'h24'Hour system using 1–24; corresponds to 'k' in pattern. The 24 hour clock, with midnight starting at 24:00.

どの時間のサイクルを使用するか、もっとコントロールする必要があるシナリオがあるかもしれません。このような場合には、 hourCycle プロパティが役に立ちます。

次の例では、 hourCycle プロパティを使用して、ロケールが en-GB であるにもかかわらず、 ion-datetime に12時間周期を使用するように強制することができます。

週初めの日

ion-datetimeの場合、週初めの曜日はデフォルトで日曜日です。2022年現在、Ionicがデバイスのロケールに基づいて自動的に週の最初の曜日を決定するためのブラウザAPIはありませんが、これに関する作業は進行中です(参照: TC39 GitHub ).

時刻表記

時刻表記は自動的にローカライズされるわけではありません。幸いなことに、Ionicでは time-label スロットで簡単にカスタムのローカライズを提供することができます。

ロケールエクステンションタグ

ion-datetime は、 Intl.Locale API の一部として locale extension tags もサポートしています。これらのタグを使用すると、ロケールに関する情報をロケール文字列自体にエンコードすることができます。開発者は、アプリの中で Intl.Locale API を使っている場合、拡張タグのアプローチを使うことを好むかもしれません。

たとえば、 en-GB ロケールで 12 時間周期を使用したい場合は、 localehourCycle の両方のプロパティを使用するのではなく、拡張タグを使用します。

note

アプリで使用する前に、 Intl.LocaleBrowser Compatibility Chart を必ず確認してください。

プレゼンテーション

デフォルトでは、 ion-datetime は日付と時刻の両方を選択することができる。さらに、ユーザは特定の月、年、時間、分を選択することができます。

ユースケースによっては、日付だけを選択したり、時間だけを選択したりすることもできます。 presentation プロパティでは、表示するピッカーとその順番を指定することができます。例えば、 date-time を設定すると、カレンダーピッカーがタイムピッカーよりも先に表示されます。 time-date を設定すると、カレンダーピッカーはtimeピッカーの後に表示されます。

月と年の選択

月と年の選択は、 presentation プロパティに month-year , year-month , month , または year を渡すことで行うことができます。

この例では、 month-year を設定した datetime を示しています。

時刻の選択

時刻の選択は、 presentation プロパティに date-time, time-date, time を渡すことで行うことができます。

この例では、timeの設定で datetime を表示しています。

日付の選択

時刻の選択は、 presentation プロパティに date-time, time-date, または date を渡すことで行うことで有効になります。

この例では、dateの設定でdatetimeを指定しています。

ピッカーのホイールスタイル

デフォルトでは、Ionicは presentation を使用する場合、グリッドスタイルのレイアウトを優先して表示します。しかし、preferWheel プロパティを使用すると、ホイールスタイルを表示することができます。preferWheeltrue` の場合、Ionic は可能な限りホイールスタイルのレイアウトを優先して表示します。

特定の presentation オプションには、グリッドとホイールの両方のスタイルがあり、開発者は preferWheel プロパティで選択することができます。その他の presentation の値はホイールスタイルのみを持ち、グリッドスタイルは決して表示されません。下の表は、どの presentation の値がグリッドスタイルとホイールスタイルを持つかを示しています。

presentationグリッドシステムホイールシステム
dateYesYes
date-timeYesYes
monthNoYes
month-yearNoYes
timeNoYes
time-dateYesYes
yearNoYes

以下の例では、ホイールピッカーに presentation="date-time" を指定しています。

複数の日付の選択

multipleプロパティがtrueに設定されている場合、カレンダーピッカーから複数の日付を選択することができます。選択した日付をクリックすると選択が解除されます。

note

This property is only supported when using presentation="date" and preferWheel="false".

タイトル

デフォルトでは、ion-datetimeは、コンポーネントに関連するヘッダーやタイトルを表示しません。開発者は showDefaultTitle プロパティを使用して、デフォルトのタイトル/ヘッダー構成を表示することができます。また、 title スロットを使用して、ヘッダーに表示される内容をカスタマイズすることもできます。

デフォルトタイトルを表示

タイトルをカスタマイズ

フォーマットオプション

formatOptionsを指定することで、Datetimeコンポーネントのヘッダーテキスト内の日付と時刻ボタン内の時刻の書式をカスタマイズすることができます。formatOptionsプロパティ内の datetime はそれぞれ Intl.DateTimeFormatOptions オブジェクトでなければなりません。もし formatOptions が指定されなかった場合、日付と時刻にはデフォルトのフォーマットが使用されます。

Datetime はタイムゾーンを 操作したり設定したりしません。もし timeZonetimeZoneName が指定された場合、それらは無視され、タイムゾーンは UTC に設定される。これにより、表示される値がユーザーの現在のタイムゾーンに変換されるのではなく、選択された値と一致するようになります。

選択された表示と一致しない可能性があるので、指定するオプションには注意してください。例えば、monthの表示に対してminute: 'numeric' を指定すると、予期しない動作になり、時間だけが表示されるはずのところに月が表示されるかもしれません。

ボタン

デフォルトでは、新しい日付が選択されると、新しいdatetimeの値で ionChange が発行されます。 ionChange を発行する前にユーザの確認を必要とする場合は、 showDefaultButtons プロパティを true に設定するか、 buttons スロットでカスタム確認ボタンを渡すことができます。カスタムボタンを渡す場合、 ionChange を発生させるために、確認ボタンは ion-datetimeconfirm メソッドを呼び出す必要があります。

確認ボタンの表示

デフォルトのDoneボタンとCancelボタンは、それぞれ confirmcancel メソッドを呼び出すように予め設定されています。

ボタンテキストのカスタマイズ

単純なユースケースの場合、開発者は doneTextcancelText プロパティを使用して、確認とキャンセルの値にカスタムボタンテキストを指定することができます。この方法は、ボタンのテキストを変更するだけで、カスタムビヘイビアを必要としない場合に推奨します。

ボタン要素のカスタマイズ

開発者は、高度なカスタム動作のための独自のボタンを提供することができる。

ion-datetime には confirm, cancel, reset メソッドがあり、開発者がカスタムボタンをクリックした際に呼び出すことができる。また、 reset メソッドには、日付のリセット先を指定することができます。

特定の日付をハイライトする

highlightedDatesプロパティを使用すると、開発者は特定の日付をカスタムテキストや背景色でスタイル設定することができます。このプロパティは、日付とその色の配列として定義するか、ISO 文字列を受け取って使用する色を返すコールバックとして定義することができます。

色を指定する場合は、有効な CSS カラーフォーマットを使用できます。これには、16進コード、rgbacolor variables などが含まれます。

一貫したユーザーエクスペリエンスを維持するため、選択された日付のスタイルは常にカスタムハイライトよりも優先されます。

note

This property is only supported when preferWheel="false", and using a presentation of either "date", "date-time", or "time-date".

配列を利用

ハイライトが期日などの固定された日付に適用される場合は、配列の方が適しています。

Callbackを利用

誕生日や定期的なミーティングなど、ハイライトされた日付が繰り返される場合は、コールバックを使用した方がよいでしょう。

スタイリング

グローバルテーマ

Ionicの強力なテーマシステムを使用すると、特定のテーマに合わせてアプリ全体を簡単に変更することができます。この例では、Color CreatorStepped Color Generator を使用して、 ion-datetime で使用できるローズ色のパレットを作成しました。

この方法の利点は、ion-datetimeだけでなく、すべてのコンポーネントが自動的にこのテーマを利用できることです。

Calendar Days

The calendar days in a grid-style ion-datetime can be styled using CSS shadow parts.

note

The example below selects the day 2 days ago, unless that day is in the previous month, then it selects a day 2 days in the future. This is done for demo purposes in order to show how to apply custom styling to all days, the current day, and the selected day.

Wheel Pickers

ion-datetimeで使用するホイールは、シャドウパーツとCSS変数を組み合わせてスタイルを設定することができます。これは、ホイールスタイルのdatetimeのカラムにも、グリッドスタイルのdatetimeの月/年のピッカーにも適用されます。

タイムゾーン

Ionicの ion-datetime は、datetime-local の動作に従い、datetimeコントロールの内部でタイムゾーンを操作・設定することはありません。つまり、「07:00」という時刻の値は、異なるタイムゾーンに応じて調整されることはありません。

date-fns-tz のようなライブラリを使用して、datetimeの値を希望するタイムゾーンに変換することをお勧めします。

以下は、ISO-8601文字列をユーザーのデバイスに設定されたタイムゾーンで表示するためのフォーマット例です。

import { format, utcToZonedTime } from 'date-fns-tz';

// Get the time zone set on the user's device
const userTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;

// Create a date object from a UTC date string
const date = new Date('2014-10-25T10:46:20Z');

// Use date-fns-tz to convert from UTC to a zoned time
const zonedTime = utcToZonedTime(date, userTimeZone);

// Create a formatted string from the zoned time
format(zonedTime, 'yyyy-MM-dd HH:mm:ssXXX', { timeZone: userTimeZone });

日付の値のパース

ionChange イベントは、イベントのペイロードに ISO-8601 形式の文字列として日付の値を出力します。アプリケーションのニーズに応じてこれをフォーマットするのは、開発者の責任です。日付の値をフォーマットするには、date-fns を使用することを推奨します。

以下は、月、日、年を表示するために ISO-8601 文字列をフォーマットする例である。

import { format, parseISO } from 'date-fns';

/**
* This is provided in the event
* payload from the `ionChange` event.
*
* The value is an ISO-8601 date string.
*/
const dateFromIonDatetime = '2021-06-04T14:23:00-04:00';
const formattedString = format(parseISO(dateFromIonDatetime), 'MMM d, yyyy');

console.log(formattedString); // Jun 4, 2021

See https://date-fns.org/docs/format for a list of all the valid format tokens.

高度な日時の検証および操作

datetime ピッカーは、正確なフォーマットを選択するシンプルさを提供し、 標準化された ISO 8601 datetime format を使用して、 datetime 値を文字列として持続させることができます。 しかし、 ion-datetime は、datetimeの値を検証したり操作したりするときに、 すべての状況を解決しようとするわけではないことに注意することが重要です。 もし、datetimeの値を特定のフォーマットからパースしたり、 操作したり(例えば、日付に5日足したり、30分を引いたり)、 あるいは、特定のロケールにデータをフォーマットする必要があるなら、 JavaScriptで日付を扱うために date-fns を使うことを強くお勧めします。

アクセシビリティ

キーボードナビゲーション

ion-datetime は、コンポーネント内のフォーカス可能な要素間を移動するためのフルキーボードサポートを備えています。次の表は、それぞれのキーが何をするのかの詳細です。

KeyFunction
TabMoves focus to the next focusable element.
Shift + TabMoves focus to the previous focusable element.
Space or EnterClicks the focusable element.

日付の表示

KeyFunction
ArrowUpMoves focus to the same day of the previous week.
ArrowDownMoves focus to the same day of the next week.
ArrowRightMoves focus to the next day.
ArrowLeftMoves focus to the previous day.
HomeMoves focus to the first day of the current week.
EndMoves focus to the last day of the current week.
PageUpChanges the grid of dates to the previous month.
PageDownChanges the grid of dates to the next month.
Shift + PageUpChanges the grid of dates to the previous year.
Shift + PageDownChanges the grid of dates to the next year.

時刻、月、年のホイール

Datetimeのホイールピッカーは、内部的に Picker を使用しています。ホイールピッカーのアクセシビリティ機能の詳細については、 ピッカー アクセシビリティ を参照してください。

Interfaces

DatetimeChangeEventDetail

interface DatetimeChangeEventDetail {
value?: string | null;
}

DatetimeCustomEvent

必須ではありませんが、このコンポーネントから発行される Ionic イベントでより強く型付けを行うために、CustomEvent インターフェースの代わりにこのインターフェースを使用することが可能です。

interface DatetimeCustomEvent extends CustomEvent {
detail: DatetimeChangeEventDetail;
target: HTMLIonDatetimeElement;
}

プロパティ

cancelText

Descriptionピッカーのキャンセルボタンに表示するテキストです。
Attributecancel-text
Typestring
Default'Cancel'

clearText

Descriptionピッカーの"Clear"ボタンに表示するテキストです。
Attributeclear-text
Typestring
Default'Clear'

color

Descriptionアプリケーションのカラーパレットから使用する色を指定します。デフォルトのオプションは以下の通りです。 "primary", "secondary", "tertiary", "success", "warning", "danger", "light", "medium", と "dark" です.色に関する詳しい情報は theming を参照してください。
Attributecolor
Type"danger" | "dark" | "light" | "medium" | "primary" | "secondary" | "success" | "tertiary" | "warning" | string | undefined
Default'primary'

dayValues

Description選択可能な日のリストを作成するために使用する値です。デフォルトでは、指定した月のすべての曜日が表示されます。しかし、表示する曜日を正確に制御するために、dayValues には数値、数値の配列、またはコンマで区切られた数値の文字列を取ることができます。配列のdayが2月の31のように選択した月にとって無効な数字であっても、選択した月にとって有効でない日は正しく表示されないことに注意してください。
Attributeday-values
Typenumber | number[] | string | undefined
Defaultundefined

disabled

Descriptiontrueの場合、ユーザはdatetimeを操作することができません。
Attributedisabled
Typeboolean
Defaultfalse

doneText

Descriptionピッカーの "Done "ボタンに表示するテキスト。
Attributedone-text
Typestring
Default'Done'

firstDayOfWeek

Descriptionion-datetimeに使用する週の最初の曜日を指定します。デフォルト値は 0` で、日曜日を表す。
Attributefirst-day-of-week
Typenumber
Default0

formatOptions

Description日付と時刻のフォーマットオプション。それぞれIntl.DateTimeFormatOptions型です。
Attributeundefined
Typeundefined | { date: DateTimeFormatOptions; time?: DateTimeFormatOptions | undefined; } | { date?: DateTimeFormatOptions | undefined; time: DateTimeFormatOptions; }
Defaultundefined

highlightedDates

Description特定の日付にカスタムテキストと背景色を適用するために使用します。 ISO 文字列と色を含むオブジェクトの配列、または ISO 文字列を受け取って色を返すコールバックのいずれかを指定します。 preferWheel="false"を持つ datedate-timetime-date` のプレゼンテーションにのみ適用されます。
Attributeundefined
Type((dateIsoString: string) => DatetimeHighlightStyle | undefined) | DatetimeHighlight[] | undefined
Defaultundefined

hourCycle

Descriptionion-datetime`の時間周期を指定します。値が設定されていない場合、現在のロケールによって指定される。
Attributehour-cycle
Type"h11" | "h12" | "h23" | "h24" | undefined
Defaultundefined

hourValues

Description選択可能な時間のリストを作成するために使用される値です。デフォルトでは、24時間制の場合は 0 から 23 まで、12時間制の場合は 1 から 12 までの時間帯が設定されます。しかし、表示する時間を正確に制御するために、hourValues には数値、数値の配列、またはコンマで区切られた数値の文字列を指定することができます。
Attributehour-values
Typenumber | number[] | string | undefined
Defaultundefined

isDateEnabled

Description個々の日付(暦日)が有効か無効かを返します。 trueの場合、その日は有効/対話型になる。もし false ならば、その日は無効/非インタラクティブです。 この関数は、指定された日のISO 8601の日付文字列を受け取ります。デフォルトでは、すべての曜日が有効になります。開発者はこの関数を使用して、特定の日を無効にするカスタムロジックを記述することができます。 この関数は、レンダリングされたカレンダーの各日、前月、当月、翌月に対して呼び出されます。カスタム実装は、ジャンクを避けるためにパフォーマンスを最適化する必要があります。
Attributeundefined
Type((dateIsoString: string) => boolean) | undefined
Defaultundefined

locale

Descriptionion-datetimeに使用するロケールを指定します。これは月と日の名前のフォーマットに影響します。"default"`の値は、あなたのデバイスが設定するデフォルトのロケールを指します。
Attributelocale
Typestring
Default'default'

max

Description許容される最大のdatetimeを指定します。値は、ISO 8601 datetime format standard1996-12-19 に従った日付文字列である必要があります。このフォーマットは、正確な日付時刻を指定する必要はありません。例えば、最大で1994のような年号を指定することができます。デフォルトはこの年の末日です。
Attributemax
Typestring | undefined
Defaultundefined

min

Description許容される最小のdatetime。値は ISO 8601 datetime format standard に従った日付文字列でなければならず、例えば 1996-12-19 のようなものです。このフォーマットは、正確な日付時刻を指定する必要はありません。例えば、最小値は1994のような年号だけでいいです。デフォルトは、今日から100年前の年頭です。
Attributemin
Typestring | undefined
Defaultundefined

minuteValues

Description選択可能な分数のリストを作成するために使用される値です。デフォルトでは、分数は 0 から 59 までの範囲です。しかし、表示する分を正確に制御するために、minuteValues には数値、数値の配列、またはコンマで区切られた数値の文字列を取ることができます。例えば、分表示を15分ごとに行う場合は、 minuteValues="0,15,30,45" と入力することになります。
Attributeminute-values
Typenumber | number[] | string | undefined
Defaultundefined

mode

Descriptionmodeは、どのプラットフォームのスタイルを使用するかを決定します。
Attributemode
Type"ios" | "md"
Defaultundefined

monthValues

Description選択可能な月のリストを作成するために使用する値。デフォルトでは、月の値は 1 から 12 までの範囲です。しかし、どの月を表示するかを正確に制御するために、monthValues には数値、数値の配列、またはコンマで区切られた数値の文字列を取ることができます。例えば、夏の月だけを表示する場合、この入力値は monthValues="6,7,8" となります。つまり、1月の値は 1 であり、12月の値は 12 です。
Attributemonth-values
Typenumber | number[] | string | undefined
Defaultundefined

multiple

Descriptiontrueの場合、複数の日付を一度に選択することができる。presentation="date"preferWheel="false"` にのみ適用される。
Attributemultiple
Typeboolean
Defaultfalse

name

Descriptionフォームデータとともに送信されるコントロールの名前。
Attributename
Typestring
Defaultthis.inputId

preferWheel

Descriptiontrueの場合、可能な限りカレンダーグリッドの代わりにホイールピッカーが表示されます。もし false ならば、可能な限りホイールピッカーの代わりにカレンダーグリッドがレンダリングされます。 ホイールピッカーは、presentationが以下の値の場合、グリッドの代わりにレンダリングすることができます:presentation"date", "date-time", または "time-date". ホイールピッカーは、preferWheelの値に関係なく、presentationが次の値のいずれかである場合に常にレンダリングされます:"time", "month", "month-year", または "year".
Attributeprefer-wheel
Typeboolean
Defaultfalse

presentation

Descriptionどの値を選択するか。"date"はカレンダーピッカーを表示し、月、日、年を選択します。"time"は時間ピッカーを表示し、時、分、そして(オプションで)AM/PMを選択します。"date-time"は、日付ピッカーを最初に、時間ピッカーを次に表示します。"time-date"`は、最初に時間ピッカー、2番目に日付ピッカーを表示します。
Attributepresentation
Type"date" | "date-time" | "month" | "month-year" | "time" | "time-date" | "year"
Default'date-time'

readonly

Descriptiontrue`の場合、日付は正常に表示されるが、選択された日付は変更できない。
Attributereadonly
Typeboolean
Defaultfalse

showClearButton

Descriptiontrueの場合、ion-datetimeコンポーネントの下部にあるデフォルトの "Cancel "と "OK "ボタンと一緒に "Clear "ボタンがレンダリングされます。これらのボタンをカスタマイズしたい場合、開発者は button slotを使用することもできる。カスタムボタンが button slotに設定されている場合、デフォルトのボタンはレンダリングされません。
Attributeshow-clear-button
Typeboolean
Defaultfalse

showDefaultButtons

Descriptiontrueの場合、ion-datetimeコンポーネントの下部にデフォルトの "Cancel" と "OK" ボタンがレンダリングされます。これらのボタンをカスタマイズしたい場合は、buttonslotを使用することもできます。カスタムボタンが button slotに設定されている場合、デフォルトのボタンはレンダリングされません。
Attributeshow-default-buttons
Typeboolean
Defaultfalse

showDefaultTimeLabel

Descriptiontrueの場合、ion-datetimeコンポーネントの時間セレクタにデフォルトの "Time "ラベルがレンダリングされる。このラベルをカスタマイズしたい場合は、time-labelslotを使用することもできます。 time-label slotにカスタムラベルが設定されている場合、デフォルトのラベルはレンダリングされません。
Attributeshow-default-time-label
Typeboolean
Defaulttrue

showDefaultTitle

Descriptiontrueの場合、カレンダーピッカーの上にヘッダーが表示されます。これには、slotされたタイトルと、選択された日付の両方が含まれます。
Attributeshow-default-title
Typeboolean
Defaultfalse

size

Descriptioncoverの場合、ion-datetimeはコンテナの全幅を覆うように展開される。fixedの場合、ion-datetime`は固定幅になる。
Attributesize
Type"cover" | "fixed"
Default'fixed'

titleSelectedDatesFormatter

Description選択されている日付の数を示すヘッダーテキストをフォーマットするために使用されるコールバック。選択されている日付が 0 あるいは 1 以上の場合にのみ使用されます (つまり、1 の場合は未使用です)。デフォルトでは、ヘッダテキストは "numberOfDates days "に設定されます。 コールバック内から this にアクセスする必要がある場合は https://ionicframework.com/docs/troubleshooting/runtime#accessing-this を参照。
Attributeundefined
Type((selectedDates: string[]) => string) | undefined
Defaultundefined

value

Descriptiondatetimeの値を有効なISO 8601 datetime文字列として指定します。これは、multiple="true"の場合のみ、文字列の配列です。
Attributevalue
Typenull | string | string[] | undefined
Defaultundefined

yearValues

Description選択可能な年のリストを作成するために使用する値。デフォルトでは、年の値は日付の minmax の間に設定される。しかし、表示する年を正確に制御するために、 yearValues 入力には数値、数値の配列、カンマで区切られた数値の文字列を指定することができます。例えば、うるう年と最近のうるう年を表示する場合、この入力の値は yearValues="2008,2012,2016,2020,2024" となります。
Attributeyear-values
Typenumber | number[] | string | undefined
Defaultundefined

イベント

NameDescriptionBubbles
ionBlurdatetimeのフォーカスが外れたときに発行されます。true
ionCanceldatetimeの選択がキャンセルされたときに発生します。true
ionChange値(選択された日付)が変化したときに発行されます。true
ionFocusdatetimeにフォーカスが当たったときに発行されます。true

メソッド

cancel

DescriptionionCancel イベントを発行し、オプションで datetime が表示されたポップオーバーまたはモーダルを閉じます。
Signaturecancel(closeOverlay?: boolean) => Promise<void>

confirm

Description選択されたdatetimeの値を確認し、valueプロパティを更新し、オプションでdatetimeが表示されていたポップオーバーまたはモーダルを閉じます。
Signatureconfirm(closeOverlay?: boolean) => Promise<void>

reset

Descriptiondatetimeの内部状態をリセットするが、値は更新しません。有効なISO-8601文字列を渡すと、コンポーネントの状態は指定した日付にリセットされます。値が提供されない場合、内部状態はmin、max、todayのクランプされた値にリセットされます。
Signaturereset(startDate?: string) => Promise<void>

CSS Shadow Parts

NameDescription
calendar-day日付カレンダーの中に日を表示する個々のボタン。
calendar-day active現在選択されている暦日。
calendar-day disabled無効になる暦日。
calendar-day today現在の日を含む暦日。
month-year-buttonグリッドスタイルレイアウト使用時に月/年ピッカーを開くボタン。
time-buttonpresentation="date-time"または"time-date"`のグリッドスタイルレイアウトを使用しているときに、時間ピッカーを開くボタン。
time-button activeピッカーが開いているときのタイムピッカーボタン。
wheel-itemホイールスタイルレイアウトを使用している場合は個々の項目、グリッドスタイルレイアウトを使用している場合は月/年のピッカーに表示されます。
wheel-item active現在選択されているホイール項目。

CSSカスタムプロパティ

NameDescription
--backgrounddatetimeコンポーネントの主な背景。
--background-rgbdatetimeコンポーネントの主な背景をRGBフォーマットで示します。
--title-colorタイトルの文字色です。
--wheel-fade-background-rgbホイールスタイルレイアウトの場合は非選択項目を覆うグラデーションの色、グリッドスタイルレイアウトの場合は月/年ピッカーの色。255,255,255`のようなRGBフォーマットでなければなりません。
--wheel-highlight-backgroundホイールスタイルレイアウトの場合は選択された項目の下、グリッドスタイルレイアウトの場合は月/年ピッカーのハイライトの背景。
--wheel-highlight-border-radiusホイールスタイルレイアウトの場合は選択された項目の下、グリッドスタイルレイアウトの場合は月/年ピッカーのハイライトの境界半径。

Slots

NameDescription
buttonsdatetimeのボタンです。
time-labeldatetimeの時間セレクタのラベルです。
titledatetimeのタイトルです。