带有moment.js的dd-MM-yyyy日期格式

时间:2017-09-12 20:43:02

标签: javascript jquery datepicker momentjs

在使用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('');
    }

});

3 个答案:

答案 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");

https://momentjs.com/docs/#/parsing/