希望在使用 moment.js
添加月份后获得像 12-September-2017 这样的日期格式。
我正在使用 datepicker
作为日期字段。
当前输出为Th-10-yyyy。
此外,收到警告
moment.min.js:6 Deprecation warning: value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.
$(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('');
}
});
最佳答案
你必须使用:
var formatedportalexpdate = portalexpdate.format('DD-MMMM-YYYY');
如 format
中所述文档。
Moment 标记区分大小写,dd
代表星期几,而 DD
代表月份中的某天,使用 MMMM
来表示获取完整月份名称和 YYYY
以获取 4 位数年份。
使用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('');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
<input type="number" id="inputmonthadded">
<input type="text" id="inputstartdate" value="12-September-2017" readonly>
<input type="text" id="inputportalexpirydate" readonly>
<input type="text" id="inputmonthpurchased">
关于javascript - 使用 moment.js 的 dd-MM-yyyy 日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46185018/