Я работаю над проектом Angular. Мне нужен последний день данного месяца для данного года, используя момент. Но есть некоторые ограничения. У меня нет полной даты в правильном формате mm-dd-yyyy
, et c. А также, что типы данных any
. У нас будет два поля ввода, одно для month
, а другое для year
. Затем по нажатию кнопки Get last day
я должен получить последний день в формате цифр c, потому что позже я должен выполнить некоторую арифметику c. Видите, это очень просто:
timeselector.component. html
<input [(ngModel)]="month"/>
<input [(ngModel)]="year"/>
<button (click)="getLastDate()">Get last date</button>
<p>Last date of {{month}}/{{year}} is: </p>
И это то, что я хочу:
Если месяц = 12, год = 1990; тогда lastDate должно быть 31
Если месяц = 11, год = 2020; тогда lastDate должно быть 30
Следует соблюдать осторожность при високосных годах:
Если месяц = 2, год = 2020; тогда lastDate должно быть 29
Если месяц = 2, год = 2021; тогда lastDate должно быть 28
timeselector.component.ts
import { Component, DoCheck, OnInit } from '@angular/core';
import moment from 'moment';
@Component({
selector: 'app-timeselector',
templateUrl: './timeselector.component.html',
styleUrls: ['./timeselector.component.css']
})
export class TimeselectorComponent {
month=12;
year=1990;
lastDate="";
getLastDate() {
// logic to get last date of the given month NOT WORKING
// const fromDate = moment(this.month, 'MM-DD-YYYY', true);
// const toDate = moment(this.year, 'MM-DD-YYYY', true);
// const customStartMonth = moment(fromDate, 'MM-DD-YYYY').month();
// const customStartYear = moment(fromDate).year();
// const customendMonth = moment(toDate, 'MM-DD-YYYY').month();
// const customendYear = moment(toDate).year();
}
}
Я пробовал много ответов, но они отличаются от моих. Я также создал stackblitz . Пожалуйста, помогите мне. Это даже выполнимо в данный момент, или мне придется написать собственный код. Пожалуйста, поправьте меня.