Имея две даты, firstDate и secondDate, я хочу проверить, находится ли новая между этими двумя, но я продолжаю получать ошибки.
Мой подход:
export class AppComponent {
first = "20171212";
second = "20181212";
firstDate = new Date(this.first);
secondDate = new Date(this.second);
check = "20180101";
checkDate = new Date(this.check);
if( this.checkDate > this.firstDate && this.today < this.secondDate) {
return true;
}
}
Сообщение об ошибке говорит о том, что нельзя использовать точечную запись в this.checkDate
и других.
Есть идеи, почему это не так?
2 ответа
new Date ("20171212")
вернет Недопустимая дата
, используйте new Date ("2017/12/12")
. Кроме того, создайте метод для проверки даты. Что-то вроде (обычный JS)
const first = "2017/12/12";
const second = "2019/01/01";
const checkDateBetween = (date2Check, first, second) =>
date2Check > first && date2Check < second;
console.log(`first: ${first}, last: ${second}`);
console.log(`new Date() between first/last? ${
checkDateBetween(new Date(), new Date(first), new Date(second))}`);
console.log(`new Date("2018/04/01") between first/last? ${
checkDateBetween(new Date("2018/04/01"), new Date(first), new Date(second))}`);
На стороне: зачем вам класс с фиксированными данными? Почему класс в любом случае, это просто синтаксический сахар для javascripts прототипа природы.
function DateChecker(first, second) {
this.first = new Date(first);
this.second = new Date(second);
if (!DateChecker.prototype.checkDate) {
DateChecker.prototype.checkDate = function(date2Check) {
return date2Check > this.first && date2Check < this.second;
}
}
}
const check = new DateChecker("2017/12/12", "2019/01/01");
console.log(`first: ${check.first},\nlast: ${check.second}`);
console.log(`new Date() between first/last? ${
check.checkDate(new Date())}`);
console.log(`new Date("2018/04/01") between first/last? ${
check.checkDate(new Date("2018/04/01"))}`);
Любая логика или функция должна быть добавлена в метод класса. Добавьте свою логику в метод класса и вместо этого вызовите этот метод. Например:
export class AppComponent {
first = "20171212";
second = "20181212";
firstDate = new Date(this.first);
secondDate = new Date(this.second);
check = "20180101";
dateChecker() {
checkDate = new Date(this.check);
if( this.checkDate > this.firstDate && this.checkDate < this.secondDate) {
return true;
}
}
}
Затем вы бы вместо этого вызвали метод dateChecker ().
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.