准备
首先我们在项目中使用ionic g page datetime创建一个测试日期组件的页面
然后,在tab1页面创建一个用于跳转到这个页面的按钮
<ion-button [routerLink]="['/datetime']">
跳转到datetime页面
</ion-button>
关于日期组件的使用可以参考文档https://ionicframework.com/docs/api/datetime
日期组件默认样式
我们在页面上使用ion-datetime来创建一个日期组件
datetime.page.html:
<ion-item>
<ion-label>Date</ion-label>
<ion-datetime display-format="DD.MM.YYYY HH:mm"></ion-datetime>
</ion-item>
页面显示如下:
当我们点击组件后下面选择显示如下
当点击Done后就选择了相应的日期时间
但是,这样的显示并不适应我们日常的习惯,于是我们就需要定义其格式
display-format、picker-format
ion-datetime中的display-format用于定义选择后显示的日期格式,而picker-format用于显示选择时下面显示的日期格式,我们写代码如下:
<ion-item>
<ion-label>Date</ion-label>
<ion-datetime display-format="YYYY-MM-DD" picker-format="YYYY MM DD"></ion-datetime>
</ion-item>
页面显示如下:
相应格式拼写可以参考文档
placeholder 提示占位符
我们可以使用placeholder来定义提示占位符
双向数字绑定
如果我们想要将日期组件绑定到特定的变量上时就需要使用双向数据绑定,代码如下:
datetime.page.html:
<ion-item>
<ion-label>双向数字绑定</ion-label>
<ion-datetime display-format="YYYY-MM-DD" picker-format="YYYY MM DD" [(ngModel)]="day"></ion-datetime>
</ion-item>
datetime.page.ts:
day:any = '2019-05-01';
注意一点,就是双向数据绑定中的数据格式要与ion-datetime中的display-format定义的格式一致
显示当前日期
要显示当前日期需要用到格式化工具
参考文档:https://www.npmjs.com/
安装时间格式化工具
npm i silly-datetime –save
使用格式化工具
datetime.page.html:
日期组件双向数据绑定nowDay
<ion-item>
<ion-label>显示当前日期</ion-label>
<ion-datetime display-format="YYYY-MM-DD" picker-format="YYYY MM DD" [(ngModel)]="nowDay"></ion-datetime>
</ion-item>
datetime.page.ts:
引入格式化日期的第三方模块
//格式化日期的第三方模块
import sd from 'silly-datetime';
然后将当前日期格式化
var d = new Date();
this.nowDay=sd.format(d,'YYYY-MM-DD');
汉化日期按钮
汉化我们可以使用pickerOptions
datetime.page.html:
<ion-item>
<ion-label>汉化日期按钮</ion-label>
<ion-datetime display-format="YYYY-MM-DD" picker-format="YYYY MM DD" [(ngModel)]="nowDay" [pickerOptions]="customPickerOptions"></ion-datetime>
</ion-item>
datetime.page.ts:
//自定义option
public customPickerOptions={
buttons: [{
text: '取消',
handler: () => console.log('Clicked 取消!')
}, {
text: '确认',
handler: () => {
console.log('确认');
//return false;
}
}]
}