在使用moment.js
添加月份后,希望获得类似 2017年9月12日的日期格式。
我使用datepicker
作为日期字段。
当前输出 Th-10-yyyy 。
另外,收到警告
moment.min.js:6弃用警告:提供的值不是公认的RFC2822或ISO格式。时刻构造回落到js Date(),这在所有浏览器和版本中都不可靠。不鼓励使用非RFC2822 / ISO日期格式,并将在即将发布的主要版本中删除。有关详细信息,请参阅http://momentjs.com/guides/#/warnings/js-date/。
$(document).on("change", "#inputmonthadded", function (evt) {
var input_value_inputstartdate = $('#inputstartdate').val();
var input_value_inputmonthpurchased = $('#inputmonthpurchased').val();
var input_value_inputmonthadded = $('#inputmonthadded').val();
if (typeof input_value_inputstartdate != 'undefined' && input_value_inputstartdate) {
var inputstartdate = moment(input_value_inputstartdate);
var portalexpdate = inputstartdate.add(input_value_inputmonthadded, 'months');
var formatedportalexpdate = portalexpdate.format('dd-MM-yyyy');
$('#inputportalexpirydate').val(formatedportalexpdate);
}
else {
$('#inputportalexpirydate').val('');
}
});
答案 0 :(得分:2)
你必须使用:
var formatedportalexpdate = portalexpdate.format('DD-MMMM-YYYY');
如format
文档中所述。
时刻代码区分大小写,dd
代表星期几,而DD
代表该月的某一天,使用MMMM
获取完整的月份名称和{{1}获得4位数年份。
在解析YYYY
时,使用moment(String, String)
代替moment(input_value_inputstartdate)
来避免弃用警告,在您的情况下,您可以执行以下操作:
input_value_inputstartdate
完整代码可能如下所示:
var inputstartdate = moment(input_value_inputstartdate, 'DD-MMMM-YYYY');
$(document).on("change", "#inputmonthadded", function (evt) {
var input_value_inputstartdate = $('#inputstartdate').val();
var input_value_inputmonthpurchased = $('#inputmonthpurchased').val();
var input_value_inputmonthadded = $('#inputmonthadded').val();
if (typeof input_value_inputstartdate != 'undefined' && input_value_inputstartdate) {
var inputstartdate = moment(input_value_inputstartdate, 'DD-MMMM-YYYY');
var portalexpdate = inputstartdate.add(input_value_inputmonthadded, 'months');
var formatedportalexpdate = portalexpdate.format('DD-MMMM-YYYY');
$('#inputportalexpirydate').val(formatedportalexpdate);
}
else {
$('#inputportalexpirydate').val('');
}
});
答案 1 :(得分:1)
您需要遵循时刻的格式样式:https://momentjs.com/docs/#/displaying/
因此:format("D-MMMM-YYYY")
注意:使用DD
将附加零,例如01,02,03,而D
将使用单个值,例如1,2,3。
答案 2 :(得分:0)
您需要将输入格式指定为第二个参数
var inputstartdate = moment(input_value_inputstartdate, "dd-MM-yyyy");