我需要帮助从endDate
减去一天 - 但endDate
是字符串。
试着用这个:
moment(this.endDate).subtract(1, 'day').format()
不起作用。
public ngOnChanges(): void {
const startDate = this.startDate ? moment(this.startDate).format() : moment().startOf('day').format();
const endDate = this.endDate ? moment(this.endDate).format() : moment(startDate).endOf('day').format();
this.datePicker = new DatePicker(startDate, endDate);
this.setDatePicker();
if (this.continiousDatesValue !== null) {
this.continiousDatesValueMoment = moment(this.continiousDatesValue);
}
if (this.previousDatesValue !== null) {
this.previousDatesValueMoment = moment(this.previousDatesValue);
}
}
同样在这里我应该从" endDate"中减去一天。 - 这是字符串:
private onDatesChange(): void {
this.startDateChange.emit(this.datePicker.startDate);
this.endDateChange.emit(this.datePicker.endDate);
this.startEndDateChange.emit({startDate: this.datePicker.startDate, endDate: this.datePicker.endDate});
this.isOpen = false;
}
答案 0 :(得分:4)
将减去的日期设置为日期对象
let endDate = "2018-04-01 08:14:00";
let dateOb = new Date(endDate);
dateOb.setDate(dateOb.getDate() - 1);
console.log(dateOb);
// now you can use moment to parse to your desired format
//or
endDate = dateOb.getFullYear() + "-" + ('0' + (dateOb.getMonth() + 1)).slice(-2) + "-" + ('0' + dateOb.getDate()).slice(-2) + " " + ('0' + dateOb.getHours()).slice(-2) + ":" + ('0' + dateOb.getMinutes()).slice(-2) + ":" + ( '0' + dateOb.getSeconds()).slice(-2);
// getMonth() starts from 0.
console.log(endDate)
答案 1 :(得分:1)
momentjs要求日期为MM DD YYYY格式或YYYY MM DD进行操作。 因此,请提供类似格式的日期,或者您可以使用Ashish Ranjan提出的解决方案。