【发布时间】:2017-02-06 20:02:18
【问题描述】:
当用户以M/D/YYYY 格式输入日期以恢复为MM/DD/YYYY 格式(例如2/5/2017 到02/05/2017)时,我正在使用momentjs 在我的项目中处理日期。我还将任何无效日期或大于今天的日期转换回今天的日期。
element.on("blur", function() {
var currentDate = moment().format('MM/DD/YYYY');
var formattedInput;
if (ctrl.$modelValue !== undefined && ctrl.$modelValue !== "") {
if(moment(ctrl.$modelValue, "MM/DD/YYYY", true).isValid()) {
formattedInput = moment(ctrl.$modelValue);
formattedInput.format('MM/DD/YYYY');
if (formattedInput.isAfter(currentDate)) {
ctrl.$setViewValue(currentDate);
ctrl.$render();
}
} else if (moment(ctrl.$modelValue, "M/D/YYYY", true).isValid()) {
formattedInput = moment(ctrl.$modelValue);
formattedInput.format('MM/DD/YYYY');
if (formattedInput.isAfter(currentDate)) {
ctrl.$setViewValue(currentDate);
ctrl.$render();
} else {
ctrl.$setViewValue(formattedInput.format('MM/DD/YYYY'));
ctrl.$render();
}
} else {
ctrl.$setViewValue(currentDate);
ctrl.$render();
}
}
});
据我所知,我上面的代码一切正常。但无论工作功能如何,我都会收到非 ISO 日期的弃用警告。我的想法是使用MM/DD/YYYY 格式,但是由于业务需求,这是不可更改的。有没有办法以不麻烦的方式解决这个问题?
【问题讨论】:
标签: momentjs