Framework7 - Inline Picker / Date-time


Advertisements

Description

You can select the number of values in the inline picker. Like date has date, month, year and time has hours, minutes, seconds.

Example

The following example demonstrates the use of Inline Picker / Date-time in 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>

Output

Let us carry out the following steps to see how the above given code works −

  • Save the above given HTML code as inline_pickerDate_time.html file in your server root folder.

  • Open this HTML file as http://localhost/inline_pickerDate_time.html and the output is displayed as shown below.

  • The code can be used to select date, month, year for date and hours, minutes, seconds for time.

framework7_picker.htm
Advertisements