Desativar hora no seletor de data e hora de bootstrap

101

Estou usando o seletor de data e hora de bootstrap em meu aplicativo da web, feito em PHP / HTML5 e JavaScript. Atualmente, estou usando um daqui: http://tarruda.github.io/bootstrap-datetimepicker/

Quando estou usando o controle sem tempo, ele não funciona. Mostra apenas uma caixa de texto em branco.

Eu só quero remover a hora do seletor de data e hora. Existe alguma solução para isso?

<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>
Chirag Sudra
fonte
4
Por favor, mostre o código que você está usando, não somos todos físicos
Steve
1
Adicione o código em questão usando Editar ...
Praveen Kumar Purushothaman
2
@Steve não somos todos médiuns, apenas alguns de nós são xD
Timo Huovinen
Para mim isso minView:'month'funcionou, eu não queria que a seleção de tempo aparecesse. Tive ajuda de seu repositório github. github.com/smalot/bootstrap-datetimepicker/issues/…
Sizzling Code

Respostas:

134

Verifique o snippet abaixo

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

Você pode consultar http://eonasdan.github.io/bootstrap-datetimepicker/ para documentação e outras funções em detalhes. Isso deve funcionar.

Atualização para suportar i18n

Use formatos localizados de moment.js:

  • L para data apenas
  • LT por tempo apenas
  • L LT para data e hora

Veja outros formatos localizados na documentação do moment.js ( https://momentjs.com/docs/#/displaying/format/ )

Ck Maurya
fonte
A opção pickDate que você cita não está documentada na documentação para a qual você se vincula.
Jeremy Burton
2
A resposta está errada em relação à pergunta. A questão era como desativar a hora, não a data. Além disso, esse código provavelmente ainda não funcionará, já que anexa o selecionador de data ao pai div(talvez a biblioteca <input>
lide
12
pickDate e pickTime foram removidos da versão atual do Bootstrap Datetimepicker de Eonasdan. Em vez disso, use o formato.
gl03
3
Isso está errado, definir o formato quebra a internacionalização
Kikin-Sama
41

Tentei todas as soluções postadas aqui, mas nenhuma funcionou para mim. Consegui desabilitar o tempo usando esta linha de código no meu jQuery:

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

Isso definiu o formato apenas para a data e desativou a hora completamente. Espero que isto ajude.

Celta
fonte
5
De todas as soluções nesta página, esta é a única que funcionou para mim. Usando v4.7.14 da lib bootstrap-datetimepicker.
Josh Buchea
2
Apenas para evitar qualquer confusão, uma vez que parece haver alguns selecionadores de data e hora com nomes semelhantes, destacarei que isso funcionou para mim para este plugin em particular: eonasdan.github.io/bootstrap-datetimepicker
Paul Calabro
Obrigado, isso funcionou para mim, no entanto, meu formulário ainda mostra o ícone para alternar para o seletor de hora, e permite que você alterne, então mostra 00:00. Isso não muda o que é enviado com o formulário, mas há alguma maneira de remover o ícone do relógio para que o usuário não possa acessar a parte do seletor de hora do formulário? Obrigado novamente!
jackerman09
Você deve estar usando uma versão diferente do DateTimePicker porque o ícone de hora desapareceu no meu.
Celta de
26

Isto é para: Bootstrap Datetimepicker de Eonasdan

Em primeiro lugar, forneceria um idatributo para o <input>e inicializaria o datetimepicker diretamente para isso <input>(e não para o contêiner pai):

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

Para v3: Ao contrário da resposta de Ck Maurya :

  • pickDate: false irá desativar a data e permitir apenas escolher um horário
  • pickTime: false irá desabilitar a hora e permitir apenas escolher uma data (que é o que você quiser).

Para v4: Bootstrap Datetimepicker agora usa o formato para determinar se um componente de tempo está presente. Se nenhum componente de hora estiver presente, ele não permitirá que você escolha uma hora (e oculte o ícone do relógio).

Peter Ilfrich
fonte
Por que isso foi rejeitado? Esta é a única resposta que explica corretamente que a opção do plugin mudou na última versão. Teria me poupado alguns minutos de confusão se essa fosse a melhor resposta.
gl03
1
Deve ser a data em MAIÚSCULAS para funcionar, estranhamente
Sidonaldson
Sim, é assim que o formato da data é especificado em Javascript (ao contrário da forma como o formato de data / hora é definido em Java). Levei algum tempo para descobrir isso também.
Peter Ilfrich
Obrigado, isso funcionou para mim, no entanto, meu formulário ainda mostra o ícone para alternar para o seletor de hora, e permite que você alterne, então mostra 00:00. Isso não muda o que é enviado com o formulário, mas há alguma maneira de remover o ícone do relógio para que o usuário não possa acessar a parte do seletor de hora do formulário? Obrigado novamente!
jackerman09
jackerman09, esteja ciente da versão do datetimepicker que você usa. O comportamento descrito se aplica ao datetimepicker v3, v4 de Eonasdan. Se você estiver usando o mais recente (o que deveria ser), não ter um componente de hora no formato removerá automaticamente o ícone do relógio. E, por favor, não poste o mesmo comentário para respostas múltiplas ... Isso sugere falta de motivação ...
Peter Ilfrich
20

Passei algum tempo tentando descobrir isso devido à atualização com DateTimePicker. Você entraria em um formato baseado na documentação do moment.js . Você pode usar o que outras respostas mostraram:

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

Ou você pode usar alguns dos formatos localizados que moment.js fornece para fazer apenas uma data, como:

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

Usando isso, você pode exibir apenas uma hora ( LT) ou data ( L) com base no local . A documentação do datetimepicker não estava claro para mim se ele se adapta automaticamente à entrada fornecida (data ou apenas hora) via moment.jsformato. Espero que isso ajude quem ainda está procurando.

ishmael62
fonte
4
Esta é a melhor resposta, porque inclui o formato dependente da localidade, em vez de "codificar" o formato.
Nahn
17
$('#datetimepicker').datetimepicker({ 
    minView: 2, 
    pickTime: false, 
    language: 'pt-BR' 
});

Por favor, tente se funciona para você também

ImBhavin95
fonte
Funciona como um encanto :) Muito obrigado. Posso perguntar qual é a configuração de minView? Sem esta configuração, o tempo é mostrado.
FrenkyB
Eu não sei, mas também tenho esse problema e sua solução para este código.
ImBhavin95
Seu ponto estava certo, mais disso aqui: github.com/smalot/bootstrap-datetimepicker/issues/416 .
FrenkyB
Perfeito! Para não quebrar o local use:$('#datetimepicker').datetimepicker({ minView: 2, pickTime: false, language: 'pt-BR' });
Aline Matos
6

Inicialize seu datetimepicker assim

Para desativar o tempo

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

Para data de desabilitação

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

Para desabilitar data e hora

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

por favor, consulte a seguinte documentação se você tiver qualquer dúvida

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

muni
fonte
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>
wolver
fonte
5

Mostra apenas a data:

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

Mais sobre o assunto aqui

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

O critério do seletor agora é um atributo da tag DIV.

exemplos são ...

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

portanto, o exemplo de bootstrap para dd mm aaaa é: -

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

minhas configurações de Javascript são as seguintes: -

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

        $(datePickerId).datetimepicker(picker_settings);

Você pode ver exemplos de funcionamento deles se baixar o arquivo bootstrap-datetimepicker-master. Existem pastas de amostra, cada uma com um index.html.

Ato Thejay
fonte
1

Para a versão 4 do bootstrap, este código está funcionando;

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

Desativar hora no seletor de data e hora do boostrap ...

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

Desativar data no seletor de data e hora boostrap ...

   $(document).ready(function () {
        $('.timepicker').datetimepicker({
            format: "HH:mm A",
        });
    });
Mugundhan A
fonte
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>
Hrushi
fonte
0
<script type="text/javascript">
        $(function () {
                  $('#datepicker').datetimepicker({
                     format: 'YYYY/MM/DD'
               });
            });
</script>
Viral M
fonte
0

Isso permite mostrar a hora no campo de entrada, mas oculta o botão seletor de hora, que é o segundo elemento li no acordeão

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

Eu sei que é tarde, mas a resposta é simplesmente remover "tempo" da palavra, datetimepickerpara alterá-lo para datepicker. Você pode formatá-lo com dateFormat.

      jQuery( "#datetimepicker4" ).datepicker({
        dateFormat: "MM dd, yy",
      });
Dawn Green
fonte
Não sei por que você apagou meu comentário, Dmitry, porque na verdade responde à pergunta do autor. O fato de haver vários dateFormats não é relevante para a questão e é mostrado aqui apenas como um exemplo.
Dawn Green,
-1

Aqui está a solução para você. É muito fácil adicionar código como este:

    $('#datetimepicker4').datetimepicker({ 

    pickTime: false 

    minview:2;(Please see here.)

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

fonte
-3

Não adiei tanto tempo e linguagem em um momento que coloco isso e não trabalho

$(function () {
    $('#datetimepicker2').datetimepicker({
              locale: 'es',
              pickTime: false
          });
});
Manu Terrón
fonte
2
será difícil obter uma ideia a partir da sua resposta.
Anptk