我想将日期时间转换为iso以将其显示为离子
中的离子日期时间这是我的.html代码
<ion-item>
<ion-label stacked>Date</ion-label>
<ion-datetime [min]="minFrom" [max]="maxFrom" displayFormat="hh:mm a"></ion-datetime>
</ion-item>
这是我的.ts代码
var start = moment('08:00 AM', 'hh:mm A');
var end = moment('04:00 PM', 'hh:mm A').subtract(30, 'm');
if(end < start) {
end = end.add(1, 'd');
}
var minTime = moment(start, 'YYYY-MM-DD HH:mm').format('YYYY-MM-DD HH:mm');
var maxTime = moment(end, 'YYYY-MM-DD HH:mm').format('YYYY-MM-DD HH:mm');
console.log(minTime);
console.log(maxTime);
console.log("=====================");
this.minFrom = moment(minTime, 'YYYY-MM-DD HH:mm:ss').toISOString();
this.maxFrom = moment(maxTime, 'YYYY-MM-DD HH:mm:ss').toISOString();
console.log(this.minFrom);
console.log(this.maxFrom);
输出给了我
=====================
2017-10-20 08:00
2017-10-21 16:30
=====================
2017-10-20T00:00:00.000Z
2017-10-20T08:30:00.000Z
为什么ISO格式赋予不同的值
预期产出
=====================
2017-10-20 08:00
2017-10-21 16:30
=====================
2017-10-20T08:00:00.000Z
2017-10-21T16:30:00.000Z
这是一个小提琴样本
答案 0 :(得分:1)
现有代码的这一部分很好。
var start = moment('08:00 AM', 'hh:mm A');
var end = moment('04:00 PM', 'hh:mm A').subtract(30, 'm');
if(end < start) {
end = end.add(1, 'd');
}
由于您已经拥有了时刻对象,现在可以根据需要对它们进行格式化。
this.minFrom = start.format('YYYY-MM-DD[T]HH:mm');
this.maxFrom = end.format('YYYY-MM-DD[T]HH:mm');
console.log(this.minFrom);
console.log(this.maxFrom);
输出:
2017-10-20T08:00
2017-10-20T15:30
请注意,您从16:00开始减去 30分钟,因此您将获得15:30。如果你真的想要16:30,那么你应该添加 30分钟。