Подтвердить что ты не робот

Функция isSame() в момент .js или Date Validation

Мне нужно проверить дату от пользователя и проверить, находится ли он в определенном формате. Если да, то это будет принято иначе, чего не будет. Я ищу своего рода

value.match("regular expression") 

Вышеуказанное работает отлично, если мне нужно выбирать из нескольких форматов. Итак, я наткнулся на этот moment.js и заинтересовался тем, как использовать isSame(). Я попытался реализовать его, но безуспешно. Например:

var x=moment("MM/DD/YYYY") ;
x.isSame("28-02-1999");  // am getting false which is right
var x=moment("28-02-1999","DD-MM-YYYY") ;
x.isSame("28-02-1999");  // am getting false which is wrong

Итак, пожалуйста, помогите в этом. Благодаря

4b9b3361

Ответ 1

Документы - одинаковые

Проверьте, совпадает ли момент с другим моментом.

moment('2010-10-20').isSame('2010-10-20'); // true

Если вы хотите ограничить детализацию единицей, отличной от миллисекунд, передайте единицы измерения в качестве второго параметра.

moment('2010-10-20').isSame('2009-12-31', 'year'); // false
moment('2010-10-20').isSame('2010-01-01', 'year'); // true
moment('2010-10-20').isSame('2010-12-31', 'year'); // true
moment('2010-10-20').isSame('2011-01-01', 'year'); // false

Ваш код

var x=moment("28-02-1999","DD-MM-YYYY"); // working
x.isSame("28-02-1999"); // comparing x to an unrecognizable string

Если вы попробуете moment("28-02-1999"), вы получите недопустимую дату. Поэтому сравнение x с недопустимой строкой даты возвращает false.

Чтобы исправить это, используйте формат даты по умолчанию (ISO 8601):

var x = moment("28-02-1999","DD-MM-YYYY");
x.isSame("1999-02-28"); // YYYY-MM-DD

Или передайте isSame моментный объект.

var x = moment("28-02-1999","DD-MM-YYYY");
x.isSame( moment("28-02-1999","DD-MM-YYYY") );

Ответ 2

если бы у вас было 2 готовых объекта момента и вы хотите сравнить Просто дата [без времени] var now = moment(). format ("MM/DD/YYYY"); var selected = $ scope.selectedDate.format("MM/DD/YYYY");

если (сейчас === выбрано) {...}