片刻没有正确格式化英国日期

时间:2017-09-28 11:11:43

标签: momentjs

我正在尝试将日期格式化为英国格式,但尽管使用了我认为正确的格式。使用单个数字日期(1 ... 9)的日期会转换日期和月份,但所有其他日期都正确格式化。我确定基本的东西。

<script>
    $(document).ready(function(){
        // Single date with icon
        $(function(){
            $("#date-icon").datepicker({
                dateFormat: 'dd/mm/yy',
                minDate: new Date(), 
                prevText: '<i class="fa fa-caret-left"></i>',
                nextText: '<i class="fa fa-caret-right"></i>'
            });
        });
        // Popup time interval
        $(function() {
            $( "#depart_date" ).datepicker({
                dateFormat: 'dd/mm/yy',
                minDate: new Date(), 
                prevText: '<i class="fa fa-caret-left"></i>',
                nextText: '<i class="fa fa-caret-right"></i>',
                onClose: function( selectedDate ) {
                    $( "#return_date" ).datepicker( "option", "from_date", selectedDate );
                }
            });
            $( "#return_date" ).datepicker({
                dateFormat: 'dd/mm/yy',
                prevText: '<i class="fa fa-caret-left"></i>',
                nextText: '<i class="fa fa-caret-right"></i>',
                onClose: function( selectedDate ) {
                    $( "#depart_date" ).datepicker( "option", "to_date", selectedDate );
                }
            });
        });

    });
</script>

然后格式化它:

var FromDateValue = $('#depart_date').val();
var ToDateValue = $('#return_date').val();
var FromDateValue = Date.parse(FromDateValue)
var ToDateValue = Date.parse(ToDateValue)    

moment.locale('en-gb');                  
var a = moment(ToDateValue, "dd-mm-yyyy");
var b = moment(FromDateValue, "dd-mm-yyyy");
var days = a.diff(b, 'days') +1  // =1
alert(ToDateValue)

这是我收到错误格式化日期的地方。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

我认为问题在于您使用片刻解析ToDateValueFromDateValue的方式。

请注意,令牌区分大小写,dd代表星期几,mm代表分钟(0..59)且没有小写yyyy。您必须使用大写DD表示月份(1..31),大写MM表示月份编号(1..12),大写YYYY表示4位数年份。

请参阅moment(String, String)文档。您的代码可能如下所示:

moment.locale('en-gb');                  
var a = moment(ToDateValue, "DD-MM-YYYY");
var b = moment(FromDateValue, "DD-MM-YYYY");
var days = a.diff(b, 'days') +1  // =1
alert(ToDateValue)