Сравнение дат в представлении cshtml

Я использую приведенный ниже код для сравнения двух дат в представлении cshtml с нокаутирующей привязкой.

data-bind="visible: (new Date(appointmentDate) - new Date() < 0) && isStart()"

Он работает нормально, но это включает время при сравнении. Я не хочу включать время в сравнение только с датой.


person vikas    schedule 19.07.2018    source источник
comment
Для моих знаний и поправьте меня, если я ошибаюсь. Date — это DateTime со временем, установленным на 00:00:00. Если в вашем случае dateDate установили время. Просто сделайте New DateTime(appointmentDate).Date   -  person Ruben Sebastian    schedule 19.07.2018
comment
Плохо, на самом деле, это привязка Knockout.js. Позвольте мне обновить вопрос с полным кодом.   -  person vikas    schedule 19.07.2018


Ответы (1)


Быстрый поиск в Google указал мне на Форматирование даты в шаблоне Knockout, это позволит нам получить дату и сравнить его. Выглядит как

data-bind="visible: (
    moment(new Date(appointmentDate)).format('MM/DD/YYYY') - 
    moment(new Date()) < 0) && isStart()"

Я не пробовал, просто дайте мне знать, если сработает

Также momento позволяет рассчитать разницу дат

var dateB = moment('2014-11-11');
var dateC = moment('2014-10-11');

console.log('Difference is ', dateB.diff(dateC), 'milliseconds');
console.log('Difference is ', dateB.diff(dateC, 'days'), 'days');
console.log('Difference is ', dateB.diff(dateC, 'months'), 'months');

Так что в основном мы бы сделали

data-bind="visible: (
        moment(new Date(appointmentDate)).format('MM/DD/YYYY').diff(new Date().format('MM/DD/YYYY'),'days') < 0) && isStart()"
person Ruben Sebastian    schedule 19.07.2018
comment
Форматирование работает с этим, но я думаю, что вычитание не работает после ввода момента. - person vikas; 19.07.2018
comment
правильно с моментом нужно использовать diff. Спасибо за вашу помощь. - person vikas; 19.07.2018
comment
(момент (новая дата (дата встречи)). diff (момент (новая дата ()), «дни») ‹ = 0) && isStart () - person vikas; 19.07.2018