【发布时间】:2022-01-18 20:16:42
【问题描述】:
我正在处理一个离子项目,并出现此错误。 我有一个按钮,我想打印用户选择的日期
我的代码
age.component.ts
import { Component, OnInit } from '@angular/core';
import * as moment from'moment';
@Component({
.....
})
export class AgeComponent implements OnInit {
dob:any = '' ;
myDate = {
years: 0,
months:0,
weeks:0,
days:0,
minutes:0,
seconds:0,
}
constructor() { }
calculateAge(){
let todaysDate = moment(new Date());
let dob = moment( new Date(this.dob) );
let duration = moment.duration(todaysDate.diff(dob));
this.myDate.years = duration.years();
this.myDate.months = Math.floor(duration.asMonths());
this.myDate.weeks = Math.floor(duration.asWeeks());
this.myDate.days = Math.floor(duration.asDays());
this.myDate.minutes = Math.floor(duration.asMinutes());
this.myDate.seconds = Math.floor(duration.asSeconds());
}
}
这是我的 age.component.html 代码
<ion-datetime class="datetime" [(ngModel)]="dob" pickerFormat="MMM DD YYYY"
displayFormat="MMM DD, YYYY" min="1950-01-01" max="2050-01-01"></ion-datetime>
<ion-button (click)="calculateAge()" >Calculate</ion-button>
<span>{{myDate.years}} years</span>
<span>{{myDate.months}} months</span>
<span>{{myDate.weeks}} weeks</span>
<span>{{myDate.days}} days</span>
<span>{{myDate.minutes}} minutes</span>
<span>{{myDate.seconds}} seconds</span>
【问题讨论】:
-
你能在堆栈闪电战中复制这个吗?
-
todaysDate 和 dob 的值返回什么?它们是有效日期吗?同样持续时间的结果是什么
-
Hmm .. 有点奇怪,我尝试在 stackblizt 上复制问题,但错误没有出现,这是链接stackblizt NaN 错误仅在您未从离子中选择日期时发生-日期时间
-
你可以简单地将
let dob中的条件添加到此 ->let dob = moment( new Date(this.dob ? this.dob : todaysDate));这样 NaN 错误就不会出现 -
@IdreesSindi 没问题,如果代码有效,我将评论移至答案部分:)
标签: angular date ionic-framework time