如何在javaScript中使用欧洲日历获得日差?

时间:2017-10-25 15:27:50

标签: javascript jquery-validate

我有两个欧洲日期格式的日期选择器:

function SetDatePicker() {

     $("#cphBody_txtDateFrom").attr('readonly', 'readonly');
     $("#cphBody_txtDateTo").attr('readonly', 'readonly');

     $("#cphBody_txtDateFrom, #cphBody_txtDateTo").datepicker({
          dateFormat: "dd/mm/yy",
          defaultDate: "+1w",
          changeMonth: true,
          numberOfMonth: 1
     });
}

我有一个JavaScript逻辑可以验证2个美国日期之间的日期差异,如果超过30个则会失败:

   function ValidateDateDiff(sender, args) {
        var dateFrom = $('#cphBody_txtDateFrom').val();
        var dateTo = $('#cphBody_txtDateTo').val();

        var dayDiff = DaysBetween(dateFrom, dateTo);


        if (dayDiff > 30) {
            args.IsValid = false;
        }
    }

    function DaysBetween(from, to) {

        var millisecondsPerDay = 24 * 60 * 60 * 1000;
        return (treatAsUTC(to) - treatAsUTC(from)) / millisecondsPerDay;
    }

    //accounting for changes to the UTC offset when Daylight Saving Time begins or ends
    function treatAsUTC(date) {
        var result = new Date(date);
        result.setMinutes(result.getMinutes() - result.getTimezoneOffset());
        return result;
    }

现在,我需要更改逻辑以验证欧洲时间标准的日差。

我必须改变我的逻辑才能做到这一点?

1 个答案:

答案 0 :(得分:0)

我通过创建新功能来解决问题:

function parseDate(str) {
    var mdy = str.split('/');
    return new Date(mdy[2], mdy[1]-1, mdy[0])
}

并更改了一个逻辑,以便在dayDiff函数中获取ValidateDateDiff值:

var dayDiff = DaysBetween(parseDate(dateFrom), parseDate(dateTo));