在引导日期时间选择器中禁用时间


101

我在用PHP / HTML5和JavaScript制作的Web应用程序中使用引导日期时间选择器。我目前正在从这里使用一个:http : //tarruda.github.io/bootstrap-datetimepicker/

当我没有时间使用控件时,它将无法正常工作。它只是显示一个空白文本框。

我只想从日期时间选择器中删除时间。有什么解决办法吗?

<div class="well">
    <div id="datetimepicker4" class="input-append"> 
        <input data-format="yyyy-MM-dd" type="text"></input> 
        <span class="add-on"> 
            <i data-time-icon="icon-time" data-date-icon="icon-calendar"> </i> 
        </span> 
    </div> 
</div> 
<script type="text/javascript"> 
    $(function() { 
        $('#datetimepicker4').datetimepicker({ pickTime: false }); 
    }); 
</script>

4
请显示您使用的代码,我们还不是全部
Steve

1
使用“编辑...”添加有问题的代码
Praveen Kumar Purushothaman 2014年

2
@Steve我们并不全都通灵,只有我们当中的一些人是xD
Timo Huovinen

对于我来说这很minView:'month'有效,我不想显示时间选择。我从他们的github存储库中获得了帮助。github.com/smalot/bootstrap-datetimepicker/issues/...
铁板代码

Answers:


134

检查以下代码段

<div class="container">
<div class="row">
    <div class='col-sm-6'>
        <div class="form-group">
            <div class='input-group date' id='datetimepicker4'>
                <input type='text' class="form-control" />
                <span class="input-group-addon"><span class="glyphicon glyphicon-time"></span>
                </span>
            </div>
        </div>
    </div>
    <script type="text/javascript">
        $(function() {              
           // Bootstrap DateTimePicker v4
           $('#datetimepicker4').datetimepicker({
                 format: 'DD/MM/YYYY'
           });
        });      
    </script>
</div>

您可以参考http://eonasdan.github.io/bootstrap-datetimepicker/以获得详细的文档和其他功能。这应该工作。

更新以支持i18n

使用moment.js的本地化格式:

  • L 仅限日期
  • LT 仅用于时间
  • L LT 日期和时间

请参阅moment.js文档中的其他本地化格式(https://momentjs.com/docs/#/displaying/format/


您引用的pickDate选项未记录在您链接到的文档中。
杰里米·伯顿

2
关于这个问题,答案是错误的。问题是如何禁用时间,而不是日期。此外,该代码可能仍然无法正常工作,因为它将日期选择器附加到了父级div(也许是图书馆处理了这个问题,并搜索了<input>-sub-elements)
Peter Ilfrich

12
在当前版本的Eonasdan的Bootstrap Datetimepicker中,pickDate和pickTime已被删除。请改用格式。
gl03 2015年

3
这是错误的,设置格式破坏了国际化
Kikin-Sama

41

我尝试了此处发布的所有解决方案,但没有一个对我有用。我设法通过在jQuery中使用以下代码来禁用时间:

$('#datetimepicker4').datetimepicker({
    format: 'YYYY-MM-DD'
});

这将格式设置为仅日期,并且完全禁用了时间。希望这可以帮助。


5
在此页面上的所有解决方案中,这是唯一对我有用的解决方案。使用bootstrap-datetimepicker lib v4.7.14。
Josh Buchea,2015年

2
只是为了避免造成任何混淆,因为似乎有一些命名类似的日期时间选择器,我要指出,这对我来说适用于该特定插件: eonasdan.github.io/bootstrap-datetimepicker
Paul Calabro

谢谢,这对我有用,但是,我的表单仍然显示切换到时间选择器的图标,它允许您切换,然后显示00:00。它不会更改表单提交的内容,但是有什么方法可以删除时钟图标,以使用户无法访问表单的时间选择器部分?再次感谢!
jackerman09 2015年

您必须使用其他版本的DateTimePicker,因为时间图标在我的手上消失了。
Celt 2015年

26

这是为:Eonasdan的Bootstrap Datetimepicker

首先,我将为提供一个id属性<input>,然后直接为此<input>(而不是为父容器)初始化datetimepicker :

<div class="container">
  <input data-format="yyyy-MM-dd" type="text" id="datetimepicker"/>
</div>
<script type="text/javascript">
  $(function() {
    // Bootstrap DateTimePicker v3
    $('#datetimepicker').datetimepicker({
      pickTime: false
    });
    // Bootstrap DateTimePicker v4
    $('#datetimepicker').datetimepicker({
      format: 'DD/MM/YYYY'
    });
  });
</script>

对于v3:与Ck Maurya的答案相反:

  • pickDate: false 将禁用日期,仅允许选择时间
  • pickTime: false 将禁用时间,仅允许选择日期(这是您想要的日期)。

对于v4:引导程序Datetimepicker现在使用该格式来确定是否存在时间分量。如果没有时间部分,则无法选择时间(并隐藏时钟图标)。


为什么这被否决了?这是唯一可以正确解释插件选项在最新版本中已更改的答案。如果这是最好的答案,本来可以节省我几分钟的时间。
gl03 2015年

1
它必须是大写日期才能生效,奇怪的是
sidonaldson

是的,这就是在Javascript中指定日期格式的方式(与Java中定义日期/时间格式的方式相反)。也花了我一些时间来解决这个问题。
Peter Ilfrich

谢谢,这对我有用,但是,我的表单仍然显示切换到时间选择器的图标,它允许您切换,然后显示00:00。它不会更改表单提交的内容,但是有什么方法可以删除时钟图标,以使用户无法访问表单的时间选择器部分?再次感谢!
jackerman09 2015年

jackerman09,请注意您使用的datetimepicker版本。所描述的行为适用于Eonasdan的datetimepicker v3,v4。如果您使用的是最新的(应该使用的),那么格式中没有时间成分将自动删除时钟图标。并且请不要对多个答案发表相同的评论...这表明缺乏动力...
Peter Ilfrich

20

由于进行了更新,我花了一些时间试图弄清楚这一点DateTimePicker。您将以基于moment.js文档的格式输入。您可以使用其他答案显示的内容:

$('#datetimepicker').datetimepicker({ format: 'DD/MM/YYYY' });

或者,您可以使用moment.js提供的某些本地化格式来做一个日期,例如:

$('#datetimepicker').datetimepicker({locale: 'fr', format: 'L' });

使用此功能,您只能根据语言环境显示时间(LT)或日期(L。我对datetimepicker的文档不清楚,因为它通过moment.js格式自动适应提供的输入(日期或仅时间)。希望这对仍在寻找的人有所帮助。


4
这是最好的答案,因为它包括与语言环境有关的格式,而不是“硬编码”格式。
Nahn

17
$('#datetimepicker').datetimepicker({ 
    minView: 2, 
    pickTime: false, 
    language: 'pt-BR' 
});

请尝试一下是否也适合您


就像一个魅力:)非常感谢。请问什么是minView设置?没有此设置,将显示时间。
FrenkyB

我不知道,但我也有这个问题,并为此代码解决了。
ImBhavin95 '17

您的观点是正确的,更多内容在这里:github.com/smalot/bootstrap-datetimepicker/issues/416
FrenkyB

完善!$('#datetimepicker').datetimepicker({ minView: 2, pickTime: false, language: 'pt-BR' });
Aline Matos

6

像这样初始化你的datetimepicker

禁用时间

$(document).ready(function(){
    $('#dp3').datetimepicker({
      pickTime: false
    });
});

禁用日期

$(document).ready(function(){
    $('#dp3').datetimepicker({
      pickDate: false
    });
});

禁用日期和时间

$(document).ready(function(){
   $("#dp3").datetimepicker('disable'); 
});

如有疑问,请参阅以下文档

http://eonasdan.github.io/bootstrap-datetimepicker/#options


6
<div class="container">
  <input type="text" id="datetimepicker"/>
</div>

<script type="text/javascript">
  $(function() {
    // trigger datepicker
    $('#datetimepicker').datetimepicker({
       pickTime: false,
        minView: 2,
        format: 'dd/mm/yyyy',
        autoclose: true,
    });
  });
</script>

5

仅显示日期:

$('#myDateTimePicker').datetimepicker({
        format: 'dd.mm.yyyy',
        minView: 2,
        maxView: 4,
        autoclose: true
      });

有关此主题的更多信息


2
    $(function () {
        $('#datetimepicker9').datetimepicker({
            viewMode: 'years',
            format: 'DD/MM/YYYY' /*Add this line to remove time format*/
        });
    });

1

选择器条件现在是DIV标签的属性。

例子是...

data-date-format="dd MM yyyy" 
data-date-format="dd MM yyyy - HH:ii p
data-date-format="hh:ii"

因此,dd mm yyyy的引导示例为:-

<div class="input-group date form_date col-md-5" data-date="" 
    data-date-format="dd MM yyyy" data-link-field="dtp_input2" data-link-format="yyyy-mm-dd">
..... etc ....
</div>

我的Javascript设置如下:-

            var picker_settings = {
                language:  'en',
                weekStart: 1,
                todayBtn:  1,
                autoclose: 1,
                todayHighlight: 1,
                startView: 2,
                minView: 2,
                forceParse: 0
            };

        $(datePickerId).datetimepicker(picker_settings);

如果下载bootstrap-datetimepicker-master文件,则可以查看这些示例的工作示例。有一些示例文件夹,每个文件夹都带有index.html。


1

对于bootstrap 4版本,此代码有效;

$('#payment-date-time-select').datetimepicker({
    startView:2,
    minView:2,
});

0

在Boostrap DateTime Picker中禁用时间...

   $(document).ready(function () {
        $('.timepicker').datetimepicker({
            format: "dd-mm-yy",
        });
    });

在Boostrap日期时间选择器中禁用日期...

   $(document).ready(function () {
        $('.timepicker').datetimepicker({
            format: "HH:mm A",
        });
    });

0
your same code work's fine, just add some link reference

<!DOCTYPE HTML>
<html>
    <head>
        <link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/css/bootstrap-combined.min.css" rel="stylesheet">
        <link rel="stylesheet" type="text/css" media="screen"
              href="http://tarruda.github.com/bootstrap-datetimepicker/assets/css/bootstrap-datetimepicker.min.css">


    </head>
    <body>
        <div class="well">
            <div id="datetimepicker4" class="input-append"> 
                <input data-format="yyyy-MM-dd" type="text"></input> 
                <span class="add-on"> 
                    <i data-time-icon="icon-time" data-date-icon="icon-calendar"> </i> 
                </span> 
            </div> 
        </div> 

        <script type="text/javascript"
                src="http://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.3/jquery.min.js">
        </script> 
        <script type="text/javascript"
                src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/js/bootstrap.min.js">
        </script>
        <script type="text/javascript"
                src="http://tarruda.github.com/bootstrap-datetimepicker/assets/js/bootstrap-datetimepicker.min.js">
        </script>
        <script type="text/javascript"
                src="http://tarruda.github.com/bootstrap-datetimepicker/assets/js/bootstrap-datetimepicker.pt-BR.js">
        </script>
        <script type="text/javascript">
            $(function () {
                $('#datetimepicker4').datetimepicker({pickTime: false});
            });
        </script>

    </body>
    </html>

0
<script type="text/javascript">
        $(function () {
                  $('#datepicker').datetimepicker({
                     format: 'YYYY/MM/DD'
               });
            });
</script>

0

这允许在输入字段中显示时间,但隐藏时间选择器按钮,这是手风琴中的第二个li元素

.bootstrap-datetimepicker-widget .list-unstyled li:nth-child(2){
    display: none;
}

-1

我知道这很晚,但是答案只是从单词中删除“ time”,然后datetimepicker将其更改为datepicker。您可以使用格式化它dateFormat

      jQuery( "#datetimepicker4" ).datepicker({
        dateFormat: "MM dd, yy",
      });

我不确定为什么您喜欢我的评论Dmitry,因为它实际上回答了张贴者的问题。有各种dateFormats的事实与问题无关,这里仅作为示例显示。
黎明绿色

-1

这是您的解决方案。像这样添加代码非常容易:

    $('#datetimepicker4').datetimepicker({ 

    pickTime: false 

    minview:2;(Please see here.)

    }); 

-3
 $("#datetimepicker4").datepicker({
    dateFormat: 'mm/dd/yy',
    changeMonth: true,
    changeYear: true,
    showOtherMonths: true,
    selectOtherMonths: true,
    pickTime: false,
    format: 'YYYY-MM-DD'
});

-3

不像我一次那样推迟时间和语言,这没用

$(function () {
    $('#datetimepicker2').datetimepicker({
              locale: 'es',
              pickTime: false
          });
});

2
从您的答案中获得想法将非常困难。
Anptk 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.