Bootstrap 3 Datepicker + Moment.js似乎无法使用格式 [英] Bootstrap 3 Datepicker + Moment.js , can't seem to get format to work

查看:108
本文介绍了Bootstrap 3 Datepicker + Moment.js似乎无法使用格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使以下Bootstrap 3插件正常工作:

http://eonasdan.github.io/bootstrap-datetimepicker/Options/

其中一项要求是 Moment.js :

http://momentjs.com/docs/#/customization/

我的HTML是:

<div class="container">
    <div class='col-md-6'>
        <div class="form-group">
            <div class='input-group date' id='datetimepicker6'>
                <input type='text' class="form-control" />
                <span class="input-group-addon">
                    <span class="glyphicon glyphicon-calendar"></span>
                </span>
            </div>
        </div>
    </div>
    <div class='col-md-6'>
        <div class="form-group">
            <div class='input-group date' id='datetimepicker7'>
                <input type='text' class="form-control" />
                <span class="input-group-addon">
                    <span class="glyphicon glyphicon-calendar"></span>
                </span>
            </div>
        </div>
    </div>
</div>

JS:

<script type="text/javascript" src="/clip-art/static/datepicker/moment.js"></script>
<script type="text/javascript" src="/clip-art/static/datepicker/js/bootstrap-datetimepicker.min.js"></script>
  <link rel="stylesheet" href="/clip-art/static/datepicker/css/bootstrap.min.css" />
  <link rel="stylesheet" href="/clip-art/static/datepicker/css/bootstrap-datetimepicker.min.css" />

 $(function () {
        $('#datetimepicker6').datetimepicker( {
            maxDate: moment(),
            allowInputToggle: true,
            enabledHours : false,
            //format: moment().format('YYYY-MM-DD'),
            format: moment().format('LLLL'),
            locale: "en"
        });
        $('#datetimepicker7').datetimepicker({
            useCurrent: false, //Important! See issue #1075
            allowInputToggle: true,
            enabledHours : false
        });
        $("#datetimepicker6").on("dp.change", function (e) {
            $('#datetimepicker7').data("DateTimePicker").minDate(e.date);
        });
        $("#datetimepicker7").on("dp.change", function (e) {
            $('#datetimepicker6').data("DateTimePicker").maxDate(e.date);
        });
    });
</script>

我有点困惑,因为我似乎无法使用这种格式.如果我使用它来设置格式:

format: moment().format('LLLL'),

我有个很奇怪的约会! (甚至不确定是哪种语言?)

如果我将其更改为:

format: moment().format('YYYY-MM-DD'),

日期确实显示正确,但是下拉列表对我而言不再起作用!

谁能建议我要去哪里错了?我已经完成了很多玩耍,谷歌搜索等工作,但是我仍然无法弄清楚:(

顺便说一句:当我不尝试编辑日期格式时,下拉菜单本身会起作用:

解决方案

好吧,我不确定为什么不喜欢使用moment().format()值,但是在检查了GitHub问题之后,我遇到了一个问题格式.它使我想到了这个例子:

https://jsfiddle.net/dugujianxiao/ad64awL7/11/

因此,在调整我的代码以改为使用format: 'YYYY-MM-DD'之后,这似乎已经对它进行了排序:

$('#datetimepicker6').datetimepicker( {
    maxDate: moment(),
    allowInputToggle: true,
    enabledHours : false,
    locale: moment().local('en'),
    format: 'YYYY-MM-DD'
});

日期和格式正确无误.

希望这对其他人有帮助!

I'm trying to get the following Bootstrap 3 plugin to work:

http://eonasdan.github.io/bootstrap-datetimepicker/Options/

One of the requirement is Moment.js:

http://momentjs.com/docs/#/customization/

My HTML is:

<div class="container">
    <div class='col-md-6'>
        <div class="form-group">
            <div class='input-group date' id='datetimepicker6'>
                <input type='text' class="form-control" />
                <span class="input-group-addon">
                    <span class="glyphicon glyphicon-calendar"></span>
                </span>
            </div>
        </div>
    </div>
    <div class='col-md-6'>
        <div class="form-group">
            <div class='input-group date' id='datetimepicker7'>
                <input type='text' class="form-control" />
                <span class="input-group-addon">
                    <span class="glyphicon glyphicon-calendar"></span>
                </span>
            </div>
        </div>
    </div>
</div>

The JS:

<script type="text/javascript" src="/clip-art/static/datepicker/moment.js"></script>
<script type="text/javascript" src="/clip-art/static/datepicker/js/bootstrap-datetimepicker.min.js"></script>
  <link rel="stylesheet" href="/clip-art/static/datepicker/css/bootstrap.min.css" />
  <link rel="stylesheet" href="/clip-art/static/datepicker/css/bootstrap-datetimepicker.min.css" />

 $(function () {
        $('#datetimepicker6').datetimepicker( {
            maxDate: moment(),
            allowInputToggle: true,
            enabledHours : false,
            //format: moment().format('YYYY-MM-DD'),
            format: moment().format('LLLL'),
            locale: "en"
        });
        $('#datetimepicker7').datetimepicker({
            useCurrent: false, //Important! See issue #1075
            allowInputToggle: true,
            enabledHours : false
        });
        $("#datetimepicker6").on("dp.change", function (e) {
            $('#datetimepicker7').data("DateTimePicker").minDate(e.date);
        });
        $("#datetimepicker7").on("dp.change", function (e) {
            $('#datetimepicker6').data("DateTimePicker").maxDate(e.date);
        });
    });
</script>

I'm a bit confused, as I can't seem to get the format to work. If I use this to set the format:

format: moment().format('LLLL'),

I get a REALLY weird date! (not even sure what language that is??)

If I change it to:

format: moment().format('YYYY-MM-DD'),

The date DOES show correctly, but then the dropdown stops working for me!

Can anyone suggest where I'm going wrong? I've done loads of playing around, googling etc, but I still can't figure it out :(

BTW: The dropdown itself works when I don't try and edit the format of the date:

解决方案

Ok, well I'm not sure why it didn't like taking a moment().format() value, but after checking the GitHub issues, I came across an issue with the format. It led me to this example:

https://jsfiddle.net/dugujianxiao/ad64awL7/11/

So after tweaking my code to use format: 'YYYY-MM-DD' instead, and this seems to have sorted it:

$('#datetimepicker6').datetimepicker( {
    maxDate: moment(),
    allowInputToggle: true,
    enabledHours : false,
    locale: moment().local('en'),
    format: 'YYYY-MM-DD'
});

The date is correct, as well as the format.

Hopefully this helps someone else!

这篇关于Bootstrap 3 Datepicker + Moment.js似乎无法使用格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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