如何格式化不同格式的两个日期?

时间:2017-03-02 08:34:59

标签: angularjs angular-material momentjs

我使用md-datepicker,我希望用{“1”来格式化start_dateend_date单词“to”。 我试着用:

$mdDateLocale.formatDate = function (date) {
    if (date) {
        var formatedDate = moment(date).format('[to] DD-MM-YYYY');
        return formatedDate;
    } else {
        return ' ';
    }
};

$mdDateLocale.formatDate = function (date) {
    if (date) {
        var formatedDate = moment(date).format('[from] DD-MM-YYYY');
        return formatedDate;
    } else {
        return ' ';
    }
};

但它将“从”设置为所有日期。

4 个答案:

答案 0 :(得分:1)

我想你使用的是两个不同的日期选择器。您可以使用关键字或其他内容:

$mdDateLocale.formatDate = function (date, keyword) {
    if (date) {
        var formatedDate = moment(date).format('[' + keyword + '] DD-MM-YYYY');
        return formatedDate;
    } else {
        return ' ';
    }
};

并称之为:

formatDate(date, 'from');
formatDate(date, 'to');

答案 1 :(得分:0)

您应该检查您的'日期'是否更新,然后现在或更早,然后设置格式。

$mdDateLocale.formatDate = function (date) {
  if (date) {
    if (new Date(date) > new Date()) {
       return moment(date).format('[to] DD-MM-YYYY');
    } else {
       return moment(date).format('[from] DD-MM-YYYY');
    }
    return formatedDate;
  } else {
    return ' ';
  }
};  

答案 2 :(得分:0)

我已经修好了这个:

 $mdDateLocale.formatDate = function (date) {
                if (date) {
                    if(date == vm.startDate) {
                        var formatedDate = moment(date).format('[From:] DD-MM-YYYY');
                        return formatedDate;
                    } else if(date == vm.endDate) {
                        var formatedDate = moment(date).format('[To:] DD-MM-YYYY');
                        return formatedDate;
                    } else {
                        var formatedDate = moment(date).format('DD-MM-YYYY');
                        return formatedDate;
                    }

                } else {
                    return ' ';
                }
            };

答案 3 :(得分:0)

尝试使用此代码:

var startDate = moment(some_start_date_value);
var endDate = moment(some_end_date_value);
var differenceDays = startDate.diff(endDate, 'days');
//you also can use 'minutes', 'hours', etc...

http://momentjs.com/docs/#/displaying/difference/