मैं अपने फॉर्म पर दिनांक इनपुट को मान्य करने के लिए पल का उपयोग करने की कोशिश कर रहा हूं, हालांकि गैर-मौजूद तिथियों के लिए जैसे कि 30 फरवरी को अमान्य तिथि कहने के बजाय यह महीने में अतिरिक्त दिन जोड़ देगा जिसका अर्थ है कि यह आउटपुट 1980-03-01 लेने के बजाय दिनांक 1980-03-01 के रूप में और दिनांक को अमान्य कर रहा है

तारीख को सही तरीके से सत्यापित करने के लिए मैं इसे कैसे प्राप्त कर सकता हूं?

const validateDate = (year, month, day) => {
    let validationMessage;
    const isNotEmpty = year && month && day;
    const date = isNotEmpty && `${year}-${month}-${day}`;
    const dateFormat = 'YYYY-MM-DD';
    const toDateFormat = moment(new Date(date)).format(dateFormat);
    const isDateValid = moment(toDateFormat, dateFormat, true).isValid();
    const isYearValid = (year > 1900 && year < new Date().getFullYear());

    if (!isDateValid) {
        validationMessage = `invalid date`;
    }

    return {
        isValid: isDateValid && isYearValid,
        validationMessage,
    };
};

export default {
    validate: validateDate
};
1
tom harrison 1 जून 2020, 14:23

1 उत्तर

सबसे बढ़िया उत्तर
const date = moment('2020-02-30', 'YYYY-MM-DD', true);
const isValid = date.isValid(); //false

const date = moment('2020-02-28', 'YYYY-MM-DD', true);
const isValid = date.isValid(); //true
2
Michael Mishin 1 जून 2020, 11:33