Ion-datatime
Lịch ngày hiển thị giao diện bộ chọn từ cuối trang, giúp người dùng dễ dàng chọn ngày và giờ. Bộ chọn hiển thị các cột có thể cuộn được có thể được sử dụng để chọn riêng các giá trị năm, tháng, ngày, giờ và phút. Datetimes tương tự như các inputphần tử gốc của loại datetime-local, tuy nhiên, thành phần Datetime của Ionic giúp dễ dàng hiển thị ngày và giờ ở định dạng ưa thích và quản lý các giá trị ngày giờ.
Display and Picker Formats
Thành phần datetime hiển thị các giá trị ở hai nơi: trong <ion-datetime>thành phần và trong giao diện bộ chọn được trình bày từ cuối màn hình. Biểu đồ sau liệt kê tất cả các định dạng có thể được sử dụng.
| định dạng | Sự miêu tả | Thí dụ |
|---|---|---|
YYYY | Năm, 4 chữ số | 2018 |
YY | Năm, 2 chữ số | 18 |
M | tháng | 1 ... 12 |
MM | Tháng, số 0 đứng đầu | 01 ... 12 |
MMM | Tháng, tên viết tắt | Jan |
MMMM | Tháng, tên đầy đủ | January |
D | ngày | 1 ... 31 |
DD | Ngày, số 0 phía trước | 01 ... 31 |
DDD | Ngày, tên viết tắt | Fri |
DDDD | Ngày, họ tên | Friday |
H | Giờ, 24 giờ | 0 ... 23 |
HH | Giờ, 24 giờ, số 0 phía trước | 00 ... 23 |
h | Giờ, 12 giờ | 1 ... 12 |
hh | Giờ, 12 giờ, số 0 phía trước | 01 ... 12 |
a | Khoảng thời gian 12 giờ, chữ thường | am pm |
A | Khoảng thời gian 12 giờ, chữ hoa | AM PM |
m | Phút | 1 ... 59 |
mm | Phút, số 0 phía trước | 01 ... 59 |
s | Thứ hai | 1 ... 59 |
ss | Thứ hai, số 0 đứng đầu | 01 ... 59 |
Z | Chênh lệch múi giờ UTC | Z or +HH:mm or -HH:mm |
Important: Month Names and Day of the Week Names
Display Format
Các displayFormatquy định cụ thể tài sản như thế nào giá trị của một datetime sẽ được in, như định dạng văn bản, trong thành phần datetime.
Một vài ví dụ được cung cấp trong biểu đồ dưới đây. Các định dạng được đề cập ở trên có thể được chuyển sang định dạng hiển thị trong bất kỳ sự kết hợp nào.
| Định dạng hiển thị | Thí dụ |
|---|---|
M-YYYY | 6-2005 |
MM/YY | 06/05 |
MMM YYYY | Jun 2005 |
YYYY, MMMM | 2005, June |
MMM DD, YYYY HH:mm | Jun 17, 2005 11:06 |
Display Timezone(hiển thị múi giờ)
Các display Timezone cho phép bạn thay đổi hành vi mặc định hiển thị các giá trị tương ứng với múi giờ địa phương của người dùng. Ngoài các giá trị múi giờ hợp lệ "UTC" được xác định bởi trình duyệt và trong hầu hết các trường hợp, theo tên múi giờ của Cơ sở dữ liệu múi giờ IANA , chẳng hạn như "Châu Á / Thượng Hải", "Châu Á / Kolkata", "Châu Mỹ / New_York ". Trong ví dụ sau:
Giá trị được hiển thị sẽ không được chuyển đổi và sẽ được hiển thị như đã cung cấp (UTC).
Picker Format
Các pickerFormat xác định các cột sẽ được hiển thị trong giao diện bảng chọn, thứ tự của các cột, và định dạng để sử dụng trong mỗi cột. Nếu pickerFormat không được cung cấp thì nó sẽ sử dụng giá trị của displayFormat. Tham khảo biểu đồ trong Display Format cho một số ví dụ định dạng.
Datetime Data
Về mặt lịch sử, việc xử lý các giá trị ngày giờ trong JavaScript, hoặc thậm chí trong các đầu vào HTML, luôn là một thách thức. Cụ thể, Dateđối tượng của JavaScript nổi tiếng là khó phân tích cú pháp chính xác các chuỗi ngày giờ hoặc định dạng các giá trị ngày giờ. Tệ hơn nữa là cách các trình duyệt và phiên bản JavaScript khác nhau phân tích cú pháp các chuỗi ngày giờ khác nhau, đặc biệt là theo ngôn ngữ.
May mắn thay, đầu vào ngày giờ của Ionic đã được thiết kế để các nhà phát triển có thể tránh được những cạm bẫy phổ biến, cho phép các nhà phát triển dễ dàng định dạng các giá trị ngày giờ trong đầu vào và cung cấp cho người dùng một công cụ chọn ngày giờ đơn giản để có trải nghiệm người dùng tuyệt vời.
IOS 8601 Datetime Format: YYYY-MM-DDTHH:mmz
Ionic sử dụng định dạng ngày giờ ISO 8601 cho giá trị của nó. Giá trị chỉ đơn giản là một chuỗi, thay vì sử dụng Dateđối tượng của JavaScript . Sử dụng định dạng ngày giờ ISO giúp dễ dàng tuần tự hóa và phân tích cú pháp trong các đối tượng và cơ sở dữ liệu JSON.
Định dạng ISO có thể được sử dụng như một năm đơn giản, hoặc chỉ giờ và phút, hoặc chi tiết hơn đến mili giây và múi giờ. Bất kỳ định dạng ISO nào dưới đây đều có thể được sử dụng và sau khi người dùng chọn một giá trị mới, Ionic sẽ tiếp tục sử dụng cùng một định dạng ISO mà giá trị datetime ban đầu được cung cấp.
| Description | Format | Datetime Value Example |
|---|---|---|
| Year | YYYY | 1994 |
| Year and Month | YYYY-MM | 1994-12 |
| Complete Date | YYYY-MM-DD | 1994-12-15 |
| Date and Time | YYYY-MM-DDTHH:mm | 1994-12-15T13:47 |
| UTC Timezone | YYYY-MM-DDTHH:mm:ssTZD | 1994-12-15T13:47:20.789Z |
| Timezone Offset | YYYY-MM-DDTHH:mm:ssTZD | 1994-12-15T13:47:20.789+05:00 |
| Hour and Minute | HH:mm | 13:47 |
| Hour, Minute, Second | HH:mm:ss | 13:47:20 |
Cũng lưu ý rằng không displayFormathoặc không pickerFormatcó thể đặt đầu ra của giá trị datetime, là giá trị được đặt bởi thành phần ngModel. Các định dạng chỉ đơn thuần để hiển thị giá trị dưới dạng văn bản và giao diện của bộ chọn, nhưng giá trị của ngày giờ luôn tồn tại dưới dạng chuỗi ngày giờ hợp lệ ISO 8601.
Min and Max Datetimes
Cũng lưu ý rằng không displayFormathoặc không pickerFormatcó thể đặt đầu ra của giá trị datetime, là giá trị được đặt bởi thành phần ngModel. Các định dạng chỉ đơn thuần để hiển thị giá trị dưới dạng văn bản và giao diện của bộ chọn, nhưng giá trị của ngày giờ luôn tồn tại dưới dạng chuỗi ngày giờ hợp lệ ISO 8601.
Month Names and Day of the Week Names
Tin tốt là có một tiêu chuẩn Intl.DatetimeFormat mà hầu hết các trình duyệt đã áp dụng.
Tuy nhiên, tại thời điểm này, tiêu chuẩn này vẫn chưa được thực hiện đầy đủ bởi tất cả các trình duyệt phổ biến nên Ionic vẫn chưa có sẵn để tận dụng nó.
Ngoài ra, Angular cũng cung cấp dịch vụ quốc tế hóa, nhưng nó vẫn đang được phát triển nặng nên Ionic không phụ thuộc vào nó tại thời điểm này.
Phương pháp hay nhất hiện tại là cung cấp một dãy tên nếu ứng dụng cần sử dụng các tên khác với tên tháng và ngày phiên bản tiếng Anh mặc định. Tên tháng và tên ngày có thể được định cấu hình ở cấp ứng dụng hoặc ion-datetimecấp cá nhân .
Advanced Datetime Validation and Manipulation
Bộ chọn ngày giờ cung cấp sự đơn giản trong việc chọn định dạng chính xác và duy trì các giá trị ngày giờ dưới dạng chuỗi sử dụng định dạng ngày giờ chuẩn ISO 8601 . Tuy nhiên, điều quan trọng cần lưu ý là ion-datetimekhông cố gắng giải quyết tất cả các tình huống khi xác thực và thao tác các giá trị datetime. Nếu các giá trị datetime cần được phân tích cú pháp từ một định dạng nhất định hoặc thao tác (chẳng hạn như thêm 5 ngày vào một ngày, trừ đi 30 phút, v.v.) hoặc thậm chí định dạng dữ liệu cho một ngôn ngữ cụ thể, thì chúng tôi thực sự khuyên bạn nên sử dụng date-fns để làm việc với ngày tháng trong JavaScript.
Usage
<ion-item>
<ion-label>MMMM</ion-label>
<ion-datetime displayFormat="MMMM" value="2012-12-15T13:47:20.789"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>MM DD YY</ion-label>
<ion-datetime displayFormat="MM DD YY" placeholder="Select Date"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>Disabled</ion-label>
<ion-datetime id="dynamicDisabled" displayFormat="MM DD YY" disabled value="1994-12-15"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>YYYY</ion-label>
<ion-datetime [pickerOptions]="customPickerOptions" placeholder="Custom Options" displayFormat="YYYY" min="1981" max="2002"></ion-datetime>
</ion-item>
<ion-item>
<ion-label position="stacked">MMMM YY</ion-label>
<ion-datetime displayFormat="MMMM YY" min="1989-06-04" max="2004-08-23" value="1994-12-15T13:47:20.789"></ion-datetime>
</ion-item>
<ion-item>
<ion-label position="floating">MM/DD/YYYY</ion-label>
<ion-datetime displayFormat="MM/DD/YYYY" min="1994-03-14" max="2012-12-09" value="2002-09-23T15:03:46.789"></ion-datetime>
</ion-item>
<ion-item>
<ion-label position="floating">MM/DD/YYYY</ion-label>
<ion-datetime displayFormat="MM/DD/YYYY" min="1994-03-14" max="2012-12-09"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>DDD. MMM DD, YY (custom locale)</ion-label>
<ion-datetime value="1995-04-15" min="1990-02" max="2000"
[dayShortNames]="customDayShortNames"
displayFormat="DDD. MMM DD, YY"
monthShortNames="jan, feb, mar, apr, mai, jun, jul, aug, sep, okt, nov, des"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>D MMM YYYY H:mm</ion-label>
<ion-datetime displayFormat="D MMM YYYY H:mm" min="1997" max="2010" value="2005-06-17T11:06Z"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>DDDD MMM D, YYYY</ion-label>
<ion-datetime displayFormat="DDDD MMM D, YYYY" min="2005" max="2016" value="2008-09-02"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>HH:mm</ion-label>
<ion-datetime displayFormat="HH:mm"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>h:mm a</ion-label>
<ion-datetime displayFormat="h:mm a"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>hh:mm A (15 min steps)</ion-label>
<ion-datetime displayFormat="h:mm A" minuteValues="0,15,30,45"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>Leap years, summer months</ion-label>
<ion-datetime displayFormat="MM/YYYY" pickerFormat="MMMM YYYY" monthValues="6,7,8" [yearValues]="customYearValues"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>Specific days/months/years</ion-label>
<ion-datetime monthValues="6,7,8" yearValues="2014,2015" dayValues="01,02,03,04,05,06,08,09,10, 11, 12, 13, 14" displayFormat="DD/MMM/YYYY"></ion-datetime>
</ion-item>@Component({…})
export class MyComponent {
customYearValues = [2020, 2016, 2008, 2004, 2000, 1996];
customDayShortNames = ['s\u00f8n', 'man', 'tir', 'ons', 'tor', 'fre', 'l\u00f8r'];
customPickerOptions: any;
constructor() {
this.customPickerOptions = {
buttons: [{
text: 'Save',
handler: () => console.log('Clicked Save!')
}, {
text: 'Log',
handler: () => {
console.log('Clicked Log. Do not Dismiss.');
return false;
}
}]
}
}
}<ion-item>
<ion-label>MMMM</ion-label>
<ion-datetime display-format="MMMM" value="2012-12-15T13:47:20.789"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>MM DD YY</ion-label>
<ion-datetime display-format="MM DD YY" placeholder="Select Date"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>Disabled</ion-label>
<ion-datetime id="dynamicDisabled" display-format="MM DD YY" disabled value="1994-12-15"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>YYYY</ion-label>
<ion-datetime id="customPickerOptions" placeholder="Custom Options" display-format="YYYY" min="1981" max="2002"></ion-datetime>
</ion-item>
<ion-item>
<ion-label position="stacked">MMMM YY</ion-label>
<ion-datetime display-format="MMMM YY" min="1989-06-04" max="2004-08-23" value="1994-12-15T13:47:20.789"></ion-datetime>
</ion-item>
<ion-item>
<ion-label position="floating">MM/DD/YYYY</ion-label>
<ion-datetime display-format="MM/DD/YYYY" min="1994-03-14" max="2012-12-09" value="2002-09-23T15:03:46.789"></ion-datetime>
</ion-item>
<ion-item>
<ion-label position="floating">MM/DD/YYYY</ion-label>
<ion-datetime display-format="MM/DD/YYYY" min="1994-03-14" max="2012-12-09"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>DDD. MMM DD, YY (custom locale)</ion-label>
<ion-datetime id="customDayShortNames" value="1995-04-15" min="1990-02" max="2000"
display-format="DDD. MMM DD, YY"
month-short-names="jan, feb, mar, apr, mai, jun, jul, aug, sep, okt, nov, des"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>D MMM YYYY H:mm</ion-label>
<ion-datetime display-format="D MMM YYYY H:mm" min="1997" max="2010" value="2005-06-17T11:06Z"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>DDDD MMM D, YYYY</ion-label>
<ion-datetime display-format="DDDD MMM D, YYYY" min="2005" max="2016" value="2008-09-02"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>HH:mm</ion-label>
<ion-datetime display-format="HH:mm"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>h:mm a</ion-label>
<ion-datetime display-format="h:mm a"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>hh:mm A (15 min steps)</ion-label>
<ion-datetime display-format="h:mm A" minute-values="0,15,30,45"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>Leap years, summer months</ion-label>
<ion-datetime id="customYearValues" display-format="MM/YYYY" picker-format="MMMM YYYY" month-values="6,7,8"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>Specific days/months/years</ion-label>
<ion-datetime month-values="6,7,8" year-values="2014,2015" day-values="01,02,03,04,05,06,08,09,10, 11, 12, 13, 14" display-format="DD/MMM/YYYY"></ion-datetime>
</ion-item>var yearValuesArray = [2020, 2016, 2008, 2004, 2000, 1996];
var customYearValues = document.getElementById('customYearValues');
customYearValues.yearValues = yearValuesArray;
var dayShortNamesArray = [
's\u00f8n',
'man',
'tir',
'ons',
'tor',
'fre',
'l\u00f8r'
];
var customDayShortNames = document.getElementById('customDayShortNames');
customDayShortNames.dayShortNames = dayShortNamesArray;
var customPickerButtons = {
buttons: [{
text: 'Save',
handler: () => console.log('Clicked Save!')
}, {
text: 'Log',
handler: () => {
console.log('Clicked Log. Do not Dismiss.');
return false;
}
}]
}
var customPickerOptions = document.getElementById('customPickerOptions');
customPickerOptions.pickerOptions = customPickerButtons;import React, { useState } from 'react';
import { IonContent, IonHeader, IonPage, IonTitle, IonToolbar, IonItem, IonLabel, IonDatetime, IonFooter } from '@ionic/react';
const customYearValues = [2020, 2016, 2008, 2004, 2000, 1996];
const customDayShortNames = [
's\u00f8n',
'man',
'tir',
'ons',
'tor',
'fre',
'l\u00f8r'
];
export const DateTimeExamples: React.FC = () => {
const [selectedDate, setSelectedDate] = useState<string>('2012-12-15T13:47:20.789');
return (
<IonPage>
<IonHeader>
<IonToolbar>
<IonTitle>IonDatetime Examples</IonTitle>
</IonToolbar>
</IonHeader>
<IonContent>
<IonItem>
<IonLabel>MMMM</IonLabel>
<IonDatetime displayFormat="MMMM" value={selectedDate} onIonChange={e => setSelectedDate(e.detail.value!)}></IonDatetime>
</IonItem>
<IonItem>
<IonLabel>MM DD YY</IonLabel>
<IonDatetime displayFormat="MM DD YY" placeholder="Select Date" value={selectedDate} onIonChange={e => setSelectedDate(e.detail.value!)}></IonDatetime>
</IonItem>
<IonItem>
<IonLabel>Disabled</IonLabel>
<IonDatetime id="dynamicDisabled" displayFormat="MM DD YY" disabled value={selectedDate} onIonChange={e => setSelectedDate(e.detail.value!)}></IonDatetime>
</IonItem>
<IonItem>
<IonLabel>YYYY</IonLabel>
<IonDatetime pickerOptions={{
buttons: [
{
text: 'Save',
handler: () => console.log('Clicked Save!')
}, {
text: 'Log',
handler: () => {
console.log('Clicked Log. Do not Dismiss.');
return false;
}
}
]
}}
placeholder="Custom Options" displayFormat="YYYY" min="1981" max="2002"
value={selectedDate} onIonChange={e => setSelectedDate(e.detail.value!)}>
</IonDatetime>
</IonItem>
<IonItem>
<IonLabel position="stacked">MMMM YY</IonLabel>
<IonDatetime displayFormat="MMMM YY" min="1989-06-04" max="2004-08-23" value={selectedDate} onIonChange={e => setSelectedDate(e.detail.value!)}></IonDatetime>
</IonItem>
<IonItem>
<IonLabel position="floating">MM/DD/YYYY</IonLabel>
<IonDatetime displayFormat="MM/DD/YYYY" min="1994-03-14" max="2012-12-09" value={selectedDate} onIonChange={e => setSelectedDate(e.detail.value!)}></IonDatetime>
</IonItem>
<IonItem>
<IonLabel position="floating">MM/DD/YYYY</IonLabel>
<IonDatetime displayFormat="MM/DD/YYYY" min="1994-03-14" max="2012-12-09" value={selectedDate} onIonChange={e => setSelectedDate(e.detail.value!)}></IonDatetime>
</IonItem>
<IonItem>
<IonLabel>DDD. MMM DD, YY (custom locale)</IonLabel>
<IonDatetime
min="1990-02"
max="2000"
dayShortNames={customDayShortNames}
displayFormat="DDD. MMM DD, YY"
monthShortNames="jan, feb, mar, apr, mai, jun, jul, aug, sep, okt, nov, des"
value={selectedDate} onIonChange={e => setSelectedDate(e.detail.value!)}
></IonDatetime>
</IonItem>
<IonItem>
<IonLabel>D MMM YYYY H:mm</IonLabel>
<IonDatetime displayFormat="D MMM YYYY H:mm" min="1997" max="2010" value={selectedDate} onIonChange={e => setSelectedDate(e.detail.value!)}></IonDatetime>
</IonItem>
<IonItem>
<IonLabel>DDDD MMM D, YYYY</IonLabel>
<IonDatetime displayFormat="DDDD MMM D, YYYY" min="2005" max="2016" value={selectedDate} onIonChange={e => setSelectedDate(e.detail.value!)}></IonDatetime>
</IonItem>
<IonItem>
<IonLabel>HH:mm</IonLabel>
<IonDatetime displayFormat="HH:mm" value={selectedDate} onIonChange={e => setSelectedDate(e.detail.value!)}></IonDatetime>
</IonItem>
<IonItem>
<IonLabel>h:mm a</IonLabel>
<IonDatetime displayFormat="h:mm a" value={selectedDate} onIonChange={e => setSelectedDate(e.detail.value!)}></IonDatetime>
</IonItem>
<IonItem>
<IonLabel>hh:mm A (15 min steps)</IonLabel>
<IonDatetime displayFormat="h:mm A" minuteValues="0,15,30,45" value={selectedDate} onIonChange={e => setSelectedDate(e.detail.value!)}></IonDatetime>
</IonItem>
<IonItem>
<IonLabel>Leap years, summer months</IonLabel>
<IonDatetime displayFormat="MM/YYYY" pickerFormat="MMMM YYYY" monthValues="6,7,8" yearValues={customYearValues} value={selectedDate} onIonChange={e => setSelectedDate(e.detail.value!)}></IonDatetime>
</IonItem>
<IonItem>
<IonLabel>Specific days/months/years</IonLabel>
<IonDatetime
monthValues='6,7,8'
yearValues='2014,2015'
dayValues="01,02,03,04,05,06,08,09,10, 11, 12, 13, 14"
displayFormat="DD/MMM/YYYY"
value={selectedDate} onIonChange={e => setSelectedDate(e.detail.value!)}
></IonDatetime>
</IonItem>
</IonContent>
<IonFooter>
<IonToolbar>
Selected Date: {selectedDate ?? '(none)'}
</IonToolbar>
</IonFooter>
</IonPage>
);
};import { Component, h } from '@stencil/core';
@Component({
tag: 'datetime-example',
styleUrl: 'datetime-example.css'
})
export class DatetimeExample {
private customYearValues = [2020, 2016, 2008, 2004, 2000, 1996];
private customDayShortNames = ['s\u00f8n', 'man', 'tir', 'ons', 'tor', 'fre', 'l\u00f8r'];
private customPickerOptions = {
buttons: [{
text: 'Save',
handler: () => console.log('Clicked Save!')
}, {
text: 'Log',
handler: () => {
console.log('Clicked Log. Do not Dismiss.');
return false;
}
}]
}
render() {
return [
<ion-item>
<ion-label>MMMM</ion-label>
<ion-datetime displayFormat="MMMM" value="2012-12-15T13:47:20.789"></ion-datetime>
</ion-item>,
<ion-item>
<ion-label>MM DD YY</ion-label>
<ion-datetime displayFormat="MM DD YY" placeholder="Select Date"></ion-datetime>
</ion-item>,
<ion-item>
<ion-label>Disabled</ion-label>
<ion-datetime id="dynamicDisabled" displayFormat="MM DD YY" disabled value="1994-12-15"></ion-datetime>
</ion-item>,
<ion-item>
<ion-label>YYYY</ion-label>
<ion-datetime pickerOptions={this.customPickerOptions} placeholder="Custom Options" displayFormat="YYYY" min="1981" max="2002"></ion-datetime>
</ion-item>,
<ion-item>
<ion-label position="stacked">MMMM YY</ion-label>
<ion-datetime displayFormat="MMMM YY" min="1989-06-04" max="2004-08-23" value="1994-12-15T13:47:20.789"></ion-datetime>
</ion-item>,
<ion-item>
<ion-label position="floating">MM/DD/YYYY</ion-label>
<ion-datetime displayFormat="MM/DD/YYYY" min="1994-03-14" max="2012-12-09" value="2002-09-23T15:03:46.789"></ion-datetime>
</ion-item>,
<ion-item>
<ion-label position="floating">MM/DD/YYYY</ion-label>
<ion-datetime displayFormat="MM/DD/YYYY" min="1994-03-14" max="2012-12-09"></ion-datetime>
</ion-item>,
<ion-item>
<ion-label>DDD. MMM DD, YY (custom locale)</ion-label>
<ion-datetime value="1995-04-15" min="1990-02" max="2000"
dayShortNames={this.customDayShortNames}
displayFormat="DDD. MMM DD, YY"
monthShortNames="jan, feb, mar, apr, mai, jun, jul, aug, sep, okt, nov, des"></ion-datetime>
</ion-item>,
<ion-item>
<ion-label>D MMM YYYY H:mm</ion-label>
<ion-datetime displayFormat="D MMM YYYY H:mm" min="1997" max="2010" value="2005-06-17T11:06Z"></ion-datetime>
</ion-item>,
<ion-item>
<ion-label>DDDD MMM D, YYYY</ion-label>
<ion-datetime displayFormat="DDDD MMM D, YYYY" min="2005" max="2016" value="2008-09-02"></ion-datetime>
</ion-item>,
<ion-item>
<ion-label>HH:mm</ion-label>
<ion-datetime displayFormat="HH:mm"></ion-datetime>
</ion-item>,
<ion-item>
<ion-label>h:mm a</ion-label>
<ion-datetime displayFormat="h:mm a"></ion-datetime>
</ion-item>,
<ion-item>
<ion-label>hh:mm A (15 min steps)</ion-label>
<ion-datetime displayFormat="h:mm A" minuteValues="0,15,30,45"></ion-datetime>
</ion-item>,
<ion-item>
<ion-label>Leap years, summer months</ion-label>
<ion-datetime displayFormat="MM/YYYY" pickerFormat="MMMM YYYY" monthValues="6,7,8" yearValues={this.customYearValues}></ion-datetime>
</ion-item>,
<ion-item>
<ion-label>Specific days/months/years</ion-label>
<ion-datetime monthValues="6,7,8" yearValues="2014,2015" dayValues="01,02,03,04,05,06,08,09,10, 11, 12, 13, 14" displayFormat="DD/MMM/YYYY"></ion-datetime>
</ion-item>
];
}
}<template>
<ion-item>
<ion-label>MMMM</ion-label>
<ion-datetime display-format="MMMM" value="2012-12-15T13:47:20.789"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>MM DD YY</ion-label>
<ion-datetime display-format="MM DD YY" placeholder="Select Date"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>Disabled</ion-label>
<ion-datetime id="dynamicDisabled" display-format="MM DD YY" disabled value="1994-12-15"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>YYYY</ion-label>
<ion-datetime :picker-options="customPickerOptions" placeholder="Custom Options" display-format="YYYY" min="1981" max="2002"></ion-datetime>
</ion-item>
<ion-item>
<ion-label position="stacked">MMMM YY</ion-label>
<ion-datetime display-format="MMMM YY" min="1989-06-04" max="2004-08-23" value="1994-12-15T13:47:20.789"></ion-datetime>
</ion-item>
<ion-item>
<ion-label position="floating">MM/DD/YYYY</ion-label>
<ion-datetime display-format="MM/DD/YYYY" min="1994-03-14" max="2012-12-09" value="2002-09-23T15:03:46.789"></ion-datetime>
</ion-item>
<ion-item>
<ion-label position="floating">MM/DD/YYYY</ion-label>
<ion-datetime display-format="MM/DD/YYYY" min="1994-03-14" max="2012-12-09"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>DDD. MMM DD, YY (custom locale)</ion-label>
<ion-datetime value="1995-04-15" min="1990-02" max="2000"
:day-short-names="customDayShortNames"
display-format="DDD. MMM DD, YY"
month-short-names="jan, feb, mar, apr, mai, jun, jul, aug, sep, okt, nov, des"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>D MMM YYYY H:mm</ion-label>
<ion-datetime display-format="D MMM YYYY H:mm" min="1997" max="2010" value="2005-06-17T11:06Z"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>DDDD MMM D, YYYY</ion-label>
<ion-datetime display-format="DDDD MMM D, YYYY" min="2005" max="2016" value="2008-09-02"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>HH:mm</ion-label>
<ion-datetime display-format="HH:mm"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>h:mm a</ion-label>
<ion-datetime display-format="h:mm a"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>hh:mm A (15 min steps)</ion-label>
<ion-datetime display-format="h:mm A" minute-values="0,15,30,45"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>Leap years, summer months</ion-label>
<ion-datetime display-format="MM/YYYY" picker-format="MMMM YYYY" month-values="6,7,8" :year-values="customYearValues"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>Specific days/months/years</ion-label>
<ion-datetime month-values="6,7,8" year-values="2014,2015" day-values="01,02,03,04,05,06,08,09,10, 11, 12, 13, 14" display-format="DD/MMM/YYYY"></ion-datetime>
</ion-item>
</template>
<script>
import { IonDatetime, IonItem, IonLabel } from '@ionic/vue';
import { defineComponent } from 'vue';
export default defineComponent({
components: { IonDatetime, IonItem, IonLabel },
setup() {
const customYearValues = [2020, 2016, 2008, 2004, 2000, 1996];
const customDayShortNames = [
's\u00f8n',
'man',
'tir',
'ons',
'tor',
'fre',
'l\u00f8r'
];
const customPickerOptions = {
buttons: [{
text: 'Save',
handler: () => console.log('Clicked Save!')
}, {
text: 'Log',
handler: () => {
console.log('Clicked Log. Do not Dismiss.');
return false;
}
}]
}
return {
customYearValues,
customDayShortNames,
customPickerOptions
}
}
});
</script>Properties
cancelText | |
|---|---|
| Description | The text to display on the picker's cancel button. |
| Attribute | cancel-text |
| Type | string |
| Default | 'Cancel' |
dayNames | |
| Description | Full day of the week names. This can be used to provide locale names for each day in the week. Defaults to English. |
| Attribute | day-names |
| Type | string | string[] | undefined |
dayShortNames | |
| Description | Short abbreviated day of the week names. This can be used to provide locale names for each day in the week. Defaults to English. Defaults to: |
| Attribute | day-short-names |
| Type | string | string[] | undefined |
dayValues | |
| Description | Values used to create the list of selectable days. By default every day is shown for the given month. However, to control exactly which days of the month to display, the |
| Attribute | day-values |
| Type | number | number[] | string | undefined |
disabled | |
| Description | If |
| Attribute | disabled |
| Type | boolean |
| Default | false |
displayFormat | |
| Description | The display format of the date and time as text that shows within the item. When the |
| Attribute | display-format |
| Type | string |
| Default | 'MMM D, YYYY' |
displayTimezone | |
| Description | The timezone to use for display purposes only. See Date.prototype.toLocaleString() for a list of supported timezones. If no value is provided, the component will default to displaying times in the user's local timezone. |
| Attribute | display-timezone |
| Type | string | undefined |
doneText | |
| Description | The text to display on the picker's "Done" button. |
| Attribute | done-text |
| Type | string |
| Default | 'Done' |
hourValues | |
| Description | Values used to create the list of selectable hours. By default the hour values range from |
| Attribute | hour-values |
| Type | number | number[] | string | undefined |
max | |
| Description | The maximum datetime allowed. Value must be a date string following the ISO 8601 datetime format standard, |
| Attribute | max |
| Type | string | undefined |
min | |
| Description | The minimum datetime allowed. Value must be a date string following the ISO 8601 datetime format standard, such as |
| Attribute | min |
| Type | string | undefined |
minuteValues | |
| Description | Values used to create the list of selectable minutes. By default the minutes range from |
| Attribute | minute-values |
| Type | number | number[] | string | undefined |
mode | |
| Description | The mode determines which platform styles to use. |
| Attribute | mode |
| Type | "ios" | "md" |
monthNames | |
| Description | Full names for each month name. This can be used to provide locale month names. Defaults to English. |
| Attribute | month-names |
| Type | string | string[] | undefined |
monthShortNames | |
| Description | Short abbreviated names for each month name. This can be used to provide locale month names. Defaults to English. |
| Attribute | month-short-names |
| Type | string | string[] | undefined |
monthValues | |
| Description | Values used to create the list of selectable months. By default the month values range from |
| Attribute | month-values |
| Type | number | number[] | string | undefined |
name | |
| Description | The name of the control, which is submitted with the form data. |
| Attribute | name |
| Type | string |
| Default | this.inputId |
pickerFormat | |
| Description | The format of the date and time picker columns the user selects. A datetime input can have one or many datetime parts, each getting their own column which allow individual selection of that particular datetime part. For example, year and month columns are two individually selectable columns which help choose an exact date from the datetime picker. Each column follows the string parse format. Defaults to use |
| Attribute | picker-format |
| Type | string | undefined |
pickerOptions | |
| Description | Any additional options that the picker interface can accept. See the |
| Type | undefined | { columns?: PickerColumn[] | undefined; buttons?: PickerButton[] | undefined; cssClass?: string | string[] | undefined; showBackdrop?: boolean | undefined; backdropDismiss?: boolean | undefined; animated?: boolean | undefined; mode?: Mode | undefined; keyboardClose?: boolean | undefined; id?: string | undefined; enterAnimation?: AnimationBuilder | undefined; leaveAnimation?: AnimationBuilder | undefined; } |
placeholder | |
| Description | The text to display when there's no date selected yet. Using lowercase to match the input attribute |
| Attribute | placeholder |
| Type | null | string | undefined |
readonly | |
| Description | If |
| Attribute | readonly |
| Type | boolean |
| Default | false |
value | |
| Description | The value of the datetime as a valid ISO 8601 datetime string. |
| Attribute | value |
| Type | null | string | undefined |
yearValues | |
| Description | Values used to create the list of selectable years. By default the year values range between the |
| Attribute | year-values |
| Type | number | number[] | string | undefined |
Events
| Name | Description |
|---|---|
ionBlur | Emitted when the datetime loses focus. |
ionCancel | Emitted when the datetime selection was cancelled. |
ionChange | Emitted when the value (selected date) has changed. |
ionFocus | Emitted when the datetime has focus. |
Menthods
open | |
|---|---|
| Description | Opens the datetime overlay. |
| Signature | open() => Promise<void> |
Css Shadow Parts
| Name | Description |
|---|---|
placeholder | The placeholder of the datetime. |
text | The value of the datetime. |
CSS Custom properties
| Name | Description |
|---|---|
--padding-bottom | Bottom padding of the datetime |
--padding-end | Right padding if direction is left-to-right, and left padding if direction is right-to-left of the datetime |
--padding-start | Left padding if direction is left-to-right, and right padding if direction is right-to-left of the datetime |
--padding-top | Top padding of the datetime |
--placeholder-color | Color of the datetime placeholder |

0 Nhận xét