我在这里得到一个小问题我创建了日期选择框,客户可以选择4个选项,如日,周,月,自定义日期
1.如果客户选择日,则来自&到目前为止当天。
2.如果客户选择周,那么从日期开始应该是星期日&到目前为止,应该是当周的当前日期。
如果客户选择月,则从日期起应开始月份开始日期&到目前为止,应该是当月的当前日期。
如果客户选择**自定义日期,则客户应从日期和日期开始选择。
下面是我的代码我必须用以下格式编写代码
选择日期的代码
<ion-col col-6>
<ion-label>Report Type</ion-label>
<ion-select [(ngModel)]="reportType">
<ion-option *ngFor="let opt of reportTypes" [value]="opt.TypeId">{{opt.Type}}</ion-option>
</ion-select>
</ion-col>
<ion-col col-6>
<ion-label>Report Type</ion-label>
<ion-select [(ngModel)]="reportType">
<ion-option *ngFor="let opt of reportTypes" [value]="opt.TypeId">{{opt.Type}}</ion-option>
</ion-select>
</ion-col>
</ion-row>
Code for getting custom dropdown on selecting custom
<ion-row *ngIf="reportType==10">
<ion-col>
<ion-item>
<ion-label>From Date</ion-label>
<ion-datetime displayFormat="MMM DD YYYY" pickerFormat="MMM DD YYYY" [(ngModel)]="reportDataFromDate"></ion-datetime>
</ion-item>
</ion-col>
<ion-col>
<ion-item>
<ion-label>To Date</ion-label>
<ion-datetime displayFormat="MMM DD YYYY" pickerFormat="MMM DD YYYY" [(ngModel)]="reportDataToDate"></ion-datetime>
</ion-item>
Typscript代码:
this.reportTypes=[{TypeId:1,Type:'Day'},{TypeId:7,Type:'Week'},{TypeId:30,Type:'Month'},{TypeId:10,Type:'Custom Date'}]
//////////////按reportTypes计算日期
calculateFromAndToDateByReportype(reportType){
var days; // Days you want to subtract
var currdate = new Date();
if(reportType==1){
this.reportDataFromDate=currdate;
this.reportDataToDate=currdate;
}
else {
var last = new Date(currdate.getTime() - (reportType * 24 * 60 * 60 * 1000));
this.reportDataFromDate=last;
this.reportDataToDate=currdate;
}
}
直到现在我 Day ,
但无法获得周,即从周日开始到周的当天
月份: - 从日期开始应该是月份开始日期,到日期应该是月份当前日期
当前日期:从日期开始应该是选定的值,到日期应该选择值
答案 0 :(得分:0)
使用此代码:
if(day){
this.reportDataFromDate=(new Date()).toISOString();
}
if(week){
let date = new Date();
let day = date.getDay(),
diff = date.getDate() - day + (day == 0 ? -6:0);
this.reportDataFromDate=(new Date(date.setDate(diff))).toISOString();
}
if(month){
let date = new Date();
this.reportDataFromDate=(new Date(date.getFullYear(), date.getMonth(), 1)).toISOString();
}