Html ';无效日期错误';尝试查找fromTime和toTime之间的差异时出现
我有两个离子日期时间选择器(fromTime和toTime),以及计算它们之间时间差的方法。当我使用日期值时,同样的方法也适用,但当我不断收到“无效日期”错误消息时,使用时间时则不适用 我尝试了一些不同的建议来计算时间,但是没有任何效果,所以如果有任何帮助,我将不胜感激 HTML:Html ';无效日期错误';尝试查找fromTime和toTime之间的差异时出现,html,typescript,datetime,ionic-framework,ionic3,Html,Typescript,Datetime,Ionic Framework,Ionic3,我有两个离子日期时间选择器(fromTime和toTime),以及计算它们之间时间差的方法。当我使用日期值时,同样的方法也适用,但当我不断收到“无效日期”错误消息时,使用时间时则不适用 我尝试了一些不同的建议来计算时间,但是没有任何效果,所以如果有任何帮助,我将不胜感激 HTML: <ion-grid> <ion-row> <ion-col> <ion-datetime class="timeBtn" displayFormat="HH:m
<ion-grid>
<ion-row>
<ion-col>
<ion-datetime class="timeBtn" displayFormat="HH:mm" pickerFormat="HH:mm" minuteValues="00,30" [(ngModel)]="fromTime" (ngModelChange)="timeChange($event, 'fromTime' )" (click)="calculateHours()" placeholder="Select Start Time"></ion-datetime>
</ion-col>
<ion-col><ion-icon class="center" name="arrow-round-forward"></ion-icon></ion-col>
<ion-col>
<ion-datetime class="timeBtn" displayFormat="HH:mm" pickerFormat="HH:mm" minuteValues="00,30" [(ngModel)]="toTime" (ngModelChange)="timeChange($event, 'toTime' )" (click)="calculateHours()" placeholder="Select End Time"></ion-datetime>
</ion-col>
</ion-row>
</ion-grid>
<ion-label class="number">{{hoursStr}}</ion-label>
<ion-label class="center">Total Hours</ion-label>
在你的代码中转换太多:你可以使用矩对象,并在需要时将它们转换为你需要的格式;否则,风险在于获取未知格式作为输入。。您尝试过吗?您好,谢谢。是的,我试过了,但没有成功。错误是因为我在模型中定义的值类型(整数不是浮点)
public fromTime;
public toTime;
constructor(....
) {
let date = new Date();
this.fromTime = date.getHours() + "-" + date.getMinutes();
this.toTime = date.getHours() + "-" + date.getMinutes();
}
timeChange(e, dateName) {
this.request[dateName] = new Date(e);
}
getTime(fromTime, toTime) {
var start = moment(fromTime);
var end = moment(toTime);
var ms = moment(end, "HH:mm").diff(moment(start, " HH:mm"));
var d = moment.duration(ms);
var s = Math.floor(d.asHours()) + moment.utc(ms).format(":");
var t = parseFloat(s);
return t;
}
hoursStr = "";
calculateHours() {
console.log("firedTime", this.fromTime, this.toTime)
if (this.fromTime && this.toTime) {
this.hoursStr = "" + this.getTime(this.fromTime, this.toTime)
}
console.log(this.hoursStr)
}
moment.duration(this.start.diff(end)).as("minutes")