如何计算数据(Jalali 日历)之间的差异或比较(是否更大)
how calculate difference or compare(is bigger or not) between to data(Jalali calendar)
我在一个页面中使用了两个ngb-datepicker,当然是jalali calendar,并绑定到这两个模型:
dateModelFrom: NgbDateStruct;
dateModelTo: NgbDateStruct;
在用户 select 日期之后,我有 2 个 jalali 日期 具有 ngb 日期结构:
dateModelFrom = {day: 1, month: 1, year: 1398}
dateModelTo = {day: 3, month: 1, year: 1398}
现在,我需要计算两个日期之间的差异,并检查 fromDate 是否小于 toDate。
我可以使用 (https://github.com/alihoseiny/ngx-persian) or (https://momentjs.com/) 转换这两个日期然后计算,但这不太好,我认为必须更短的解决方案。
我也知道有NgbDateNativeAdapter服务(https://ng-bootstrap.github.io/#/components/datepicker/api#NgbDateNativeAdapter),我尝试转换成javascript日期,然后计算,但输出与输入相同:
let toDay:NgbDateStruct = this._persianNgbCalendar.getToday();;
let _toDay:Date = this._ngbDateNativeAdapter.toModel(toDay);
在 ngb-datepicker 的文档中,您会找到一个 range picker and there is a implementation for comparing two dates. Also you can check the stackblitz 的示例,以便更好地理解。
示例:
<ngb-datepicker #dp (select)="onDateSelection($event)" [displayMonths]="2" [dayTemplate]="t" outsideDays="hidden"></ngb-datepicker>
在您的 onDateSelection 函数中,您可以比较两个日期:
onDateSelection(date: NgbDate) {
if (!this.fromDate && !this.toDate) {
this.fromDate = date;
} else if (this.fromDate && !this.toDate && date.after(this.fromDate)) {
this.toDate = date;
} else {
this.toDate = null;
this.fromDate = date;
}
}
我在一个页面中使用了两个ngb-datepicker,当然是jalali calendar,并绑定到这两个模型:
dateModelFrom: NgbDateStruct;
dateModelTo: NgbDateStruct;
在用户 select 日期之后,我有 2 个 jalali 日期 具有 ngb 日期结构:
dateModelFrom = {day: 1, month: 1, year: 1398}
dateModelTo = {day: 3, month: 1, year: 1398}
现在,我需要计算两个日期之间的差异,并检查 fromDate 是否小于 toDate。
我可以使用 (https://github.com/alihoseiny/ngx-persian) or (https://momentjs.com/) 转换这两个日期然后计算,但这不太好,我认为必须更短的解决方案。
我也知道有NgbDateNativeAdapter服务(https://ng-bootstrap.github.io/#/components/datepicker/api#NgbDateNativeAdapter),我尝试转换成javascript日期,然后计算,但输出与输入相同:
let toDay:NgbDateStruct = this._persianNgbCalendar.getToday();;
let _toDay:Date = this._ngbDateNativeAdapter.toModel(toDay);
在 ngb-datepicker 的文档中,您会找到一个 range picker and there is a implementation for comparing two dates. Also you can check the stackblitz 的示例,以便更好地理解。
示例:
<ngb-datepicker #dp (select)="onDateSelection($event)" [displayMonths]="2" [dayTemplate]="t" outsideDays="hidden"></ngb-datepicker>
在您的 onDateSelection 函数中,您可以比较两个日期:
onDateSelection(date: NgbDate) {
if (!this.fromDate && !this.toDate) {
this.fromDate = date;
} else if (this.fromDate && !this.toDate && date.after(this.fromDate)) {
this.toDate = date;
} else {
this.toDate = null;
this.fromDate = date;
}
}