Framework7 - Selecionador Inline / Data-hora

Descrição

Você pode selecionar o número de valores no seletor embutido. Como a data tem data, mês, ano e hora tem horas, minutos, segundos .

Exemplo

O exemplo a seguir demonstra o uso de Inline Picker / Date-time no Framework7 -

<!DOCTYPE html>
<html>

   <head>
      <meta name = "viewport" content = "width = device-width, initial-scale = 1, 
         maximum-scale = 1, minimum-scale = 1, user-scalable = no, minimal-ui" />
      <meta name = "apple-mobile-web-app-capable" content = "yes" />
      <meta name = "apple-mobile-web-app-status-bar-style" content = "black" />
      <title>Inline Picker / Date-time</title>
      <link rel = "stylesheet" 
         href = "https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/css/framework7.ios.min.css" />
      <link rel = "stylesheet" 
         href = "https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/css/framework7.ios.colors.min.css" />
   </head>
   
   <body>
      <div class = "views">
         <div class = "view view-main">
            <div class = "pages">
               <div data-page = "home" class = "page navbar-fixed">
                  
                  <div class = "navbar">
                     <div class = "navbar-inner">
                        <div class = "left"> </div>
                        <div class = "center">Picker</div>
                        <div class = "right"> </div>
                     </div>
                  </div>
                  
                  <div class = "page-content">
                     <div class = "content-block-title">Inline Picker / Date-time</div>
                     <div class = "content-block">
                        <div style = "padding:0; margin-right:-15px; width:auto" class = "content-block-inner">
                           
                           <div style = "margin:0" class = "list-block">
                              <ul style = "border-top:none">
                                 <li>
                                    <div class = "item-content">
                                       <div class = "item-inner">
                                          <div class = "item-input">
                                             <input type = "text" placeholder = "Date Time" 
                                                readonly id = "picker-date" />
                                          </div>
                                       </div>
                                    </div>
                                 </li>
                              </ul>
                           </div>
                           
                           <div id = "picker-date-container"></div>
                        </div>
                     </div>
                  </div>
                  
               </div>
            </div>
         </div>
      </div>
      
      <script type = "text/javascript" 
         src = "https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/js/framework7.min.js"></script>
         
      <style>
         .swiper-slide {
            background:#fff;
            box-sizing:border-box;
            border:1px solid #ccc;
            line-height:120px;
            text-align:center;
         }
         
         .swiper-slide span {
            font-size:17px;
         }
         
         .swiper-container {
            height:120px;
            margin:0px 0 35px;
         }
      </style>
      
      <style>
         #picker-date-container .picker-item {
            color:#999;
         }
         
         #picker-date-container .picker-selected {
            color:#000;
         }
         
         @media (max-width: 767px) {
            #picker-date-container .picker-items {
               font-size:21px;
            }
            
            #picker-date-container .picker-item {
               height:36px;
               line-height:36px;padding:0 6px;
            }
         }
      </style>
      
      <script>
         var myApp = new Framework7();
         
         // Inline date-time
         var today = new Date();
         var pickerInline = myApp.picker ({
            input: '#picker-date',
            container: '#picker-date-container',
            toolbar: false,
            rotateEffect: true,
            value: [
               today.getMonth(), 
               today.getDate(), 
               today.getFullYear(), 
               today.getHours(), 
               (today.getMinutes() < 10 ? '0' + today.getMinutes() : today.getMinutes())
            ],
            
            onChange: function (picker, values, displayValues) {
               var daysInMonth = new Date(picker.value[2], picker.value[0]*1 + 1, 0).getDate();
               
               if (values[1] > daysInMonth) {
                  picker.cols[1].setValue(daysInMonth);
               }
            },
            
            formatValue: function (p, values, displayValues) {
               return displayValues[0] + ' ' + values[1] + ', ' + values[2] + ' ' + values[3] + ':' + values[4];
            },
            
            cols: [
               // Months
               {
                  values: ('0 1 2 3 4 5 6 7 8 9 10 11').split(' '),
                  displayValues: ('January February March April May June July August September October November December').split(' '),
                  textAlign: 'left'
               },
               
               // Days
               {
                  values: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],
               },
               
               // Years
               {
                  values: (function () {
                     var arr = [];
                     for (var i = 1950; i <= 2030; i++) { arr.push(i); }
                     return arr;
                  })(),
               },
               
               // Space divider
               {
                  divider: true,
                  content: '  '
               },
               
               // Hours
               {
                  values: (function () {
                     var arr = [];
                     for (var i = 0; i <= 23; i++) { arr.push(i); }
                     return arr;
                  })(),
               },
               
               // Divider
               {
                  divider: true,
                  content: ':'
               },
               
              // Minutes
               {
                  values: (function () {
                     var arr = [];
                     for (var i = 0; i <= 59; i++) { arr.push(i < 10 ? '0' + i : i); }
                     return arr;
                  })(),
               }
            ]
         });
      </script>
   </body>

</html>

Resultado

Vamos realizar as seguintes etapas para ver como funciona o código fornecido acima -

  • Salve o código HTML fornecido acima como inline_pickerDate_time.html arquivo na pasta raiz do servidor.

  • Abra este arquivo HTML como http: //localhost/inline_pickerDate_time.html e a saída é exibida conforme mostrado abaixo.

  • O código pode ser usado para selecionar data, mês, ano para data e horas, minutos e segundos para hora.