带有moment.js的dd-MM-yyyy日期格式 [英] dd-MM-yyyy date format with moment.js

查看:71
本文介绍了带有moment.js的dd-MM-yyyy日期格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在使用 moment.js 添加了几个月之后,希望获得类似于 2017年9月12日的日期格式.我在日期字段中使用 datepicker .

Would like to get date format like 12-September-2017 after adding months with moment.js. I'm using datepicker for date fields.

当前输出为 Th-10-yyyy .

也收到警告

moment.min.js:6弃用警告:提供的值不是公认的RFC2822或ISO格式.此刻的构建工作归结为js Date(),它在所有浏览器和版本之间均不可靠.不建议使用非RFC2822/ISO日期格式,并将在即将发布的主要版本中将其删除.请参考 http://momentjs.com/guides/#/warnings/js-日期/以获取更多信息.

$(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 文档中所述.

as stated in the format docs.

时刻令牌区分大小写, dd 代表星期几,而 DD 代表星期几,请使用 MMMM 获取完整的月份名称和 YYYY 获得4位数字的年份.

Moment tokens are case sensitive, dd stands as day of the week, while DD stands for day of the month, use MMMM to get full month name and YYYYto get the 4 digit year.

使用 moment(字符串,字符串) 代替 moment(input_value_inputstartdatedate),以避免在解析 input_value_inputstartdate 时出现过时警告,在您的情况下,您可以执行以下操作:

Use moment(String, String) instead of moment(input_value_inputstartdate) to avoid Deprecation warning while parsing input_value_inputstartdate, in your case you can do something like:

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">

这篇关于带有moment.js的dd-MM-yyyy日期格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆