Search code examples
javascriptbootstrap-4bootstrap-datetimepicker

How make bootstrap datetimepicker to select only time


Using bootstrap datetimepicker with init like :

  $('#departure-time').datetimepicker({
    todayHighlight: true,
    autoclose: true,
    format: 'yyyy-mm-dd hh:ii'
  }).on('change', function () {
  });

I did not find how can I make to select only time Setting format :

format: 'hh:ii'

Did not help.

Which way is correct ?

I have :

"bootstrap": "^4.4.1",
"bootstrap-datepicker": "^1.8.0",
"bootstrap-daterangepicker": "^3.0.3",
"bootstrap-datetime-picker": "^2.4.4",
"bootstrap-datetimepicker": "^0.0.7",

MODIFIED : In my project "jquery": "^3.3.1" is used and I can not move to "jquery 2, Can it be reason of

“Uncaught Error: Invalid date format.    at Object.parseFormat” error 

in console when I init Datetimepicker as :

$('#time_utc').datetimepicker({
  todayHighlight: true,
  autoclose: true,
  format: 'LT',
}).on('change', function () {
});

Can I fix the error ?

MODIFIED # 2: I try to raise bootstrap-datetimepicker to version 4.17.47, which seems latest at https://github.com/Eonasdan/bootstrap-datetimepicker

But I have problems with it, as In package.json of my project I have line:

  "bootstrap-datetimepicker": "^0.0.7",

I modified it to

  "bootstrap-datetimepicker": "^4.17.47",

But running npm install I got error:

      npm ERR! code ETARGET
npm ERR! notarget No matching version found for bootstrap-datetimepicker@^4.17.47.
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.

I modified it to

"bootstrap-datetimepicker": "4.17.47",

But running npm install I got similar error:

npm ERR! code ETARGET
npm ERR! notarget No matching version found for bootstrap-datetimepicker@4.17.47.
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.

I cleared bootstrap-datetimepicker from package.json

and run

npm install  bootstrap-datetimepicker

on installation I again see in package.json:

"bootstrap-datetimepicker": "0.0.7",

What I have from the start.

Also, please take a look at package.json :

{
    "private": true,
    "scripts": {
        "cleanup": "rm -rf public/assets public/css public/fonts public/images public/js public/mix-manifest.json ",
        "predev": "npm run cleanup",
        "dev": "npm run fix && npm run development",
        "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
        "watch": "npm run development -- --watch",
        "watch-poll": "npm run watch -- --watch-poll",
        "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
        "prod": "npm run fix && npm run production",
        "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
        "lint": "npx standard 'resources/js/**/*.js'",
        "fix": "npx standard 'resources/js/**/*.js' --fix"
    },
    "dependencies": {
        "@ckeditor/ckeditor5-alignment": "^11.2.0",
        "@ckeditor/ckeditor5-build-balloon": "^12.4.0",
        "@ckeditor/ckeditor5-build-balloon-block": "^12.4.0",
        "@ckeditor/ckeditor5-build-classic": "^12.4.0",
        "@ckeditor/ckeditor5-build-decoupled-document": "^12.4.0",
        "@ckeditor/ckeditor5-build-inline": "^12.4.0",
        "@fortawesome/fontawesome-free": "^5.13.0",
        "@fullcalendar/core": "^4.4.0",
        "@fullcalendar/daygrid": "^4.4.0",
        "@fullcalendar/google-calendar": "^4.4.0",
        "@fullcalendar/interaction": "^4.4.0",
        "@fullcalendar/list": "^4.4.0",
        "@fullcalendar/timegrid": "^4.4.0",
        "@uppy/core": "^1.8.2",
        "@uppy/progress-bar": "^1.3.7",
        "@uppy/tus": "^1.5.5",
        "@yaireo/tagify": "^2.23.1",
        "animate.css": "^3.5.2",
        "autosize": "^4.0.0",
        "block-ui": "^2.70.1",
        "bootstrap": "^4.4.1",
        "bootstrap-datepicker": "^1.8.0",
        "bootstrap-daterangepicker": "^3.0.3",
        "bootstrap-datetime-picker": "^2.4.4",
        "bootstrap-datetimepicker": "0.0.7",
        "bootstrap-markdown": "^2.10.0",
        "bootstrap-maxlength": "^1.6.0",
        "bootstrap-notify": "^3.1.3",
        "bootstrap-select": "1.13.10",
        "bootstrap-switch": "3.3.4",
        "bootstrap-timepicker": "^0.5.2",
        "bootstrap-touchspin": "^4.2.5",
        "chart.js": "^2.7.3",
        "clipboard": "^2.0.6",
        "corejs-typeahead": "^1.3.0",
        "counterup": "^1.0.2",
        "datatables.net-autofill-bs4": "^2.3.4",
        "datatables.net-bs4": "^1.10.20",
        "datatables.net-buttons-bs4": "^1.6.0",
        "datatables.net-colreorder-bs4": "^1.5.2",
        "datatables.net-fixedcolumns-bs4": "^3.3.0",
        "datatables.net-fixedheader-bs4": "^3.1.6",
        "datatables.net-keytable-bs4": "^2.5.1",
        "datatables.net-responsive-bs4": "^2.2.3",
        "datatables.net-rowgroup-bs4": "^1.1.1",
        "datatables.net-rowreorder-bs4": "^1.2.6",
        "datatables.net-scroller-bs4": "^2.0.1",
        "datatables.net-select-bs4": "^1.3.1",
        "dompurify": "^1.0.9",
        "dropzone": "^5.7.0",
        "dual-listbox": "1.1.0",
        "es6-promise": "^4.2.8",
        "es6-promise-polyfill": "^1.2.0",
        "flot": "^3.2.2",
        "gmaps": "^0.4.25",
        "handlebars": "^4.7.3",
        "inputmask": "^4.0.6",
        "ion-rangeslider": "^2.2.0",
        "jkanban": "^1.2.1",
        "jquery": "^3.3.1",
        "jquery-form": "^4.2.2",
        "jquery-ui": "^1.12.1",
        "jquery-validation": "1.19.0",
        "jquery.repeater": "^1.2.1",
        "jqvmap": "^1.5.1",
        "js-cookie": "^2.2.0",
        "jstree": "^3.3.9",
        "jszip": "^3.2.2",
        "leaflet": "^1.6.0",
        "markdown": "^0.5.0",
        "morris.js": "^0.5.0",
        "nouislider": "^13.1.0",
        "owl.carousel": "^2.3.4",
        "pace": "0.0.4",
        "pace-js": "^1.0.2",
        "pdfmake": "^0.1.65",
        "perfect-scrollbar": "^1.5.0",
        "popper.js": "^1.16.1",
        "prismjs": "^1.8.4",
        "quill": "^1.3.6",
        "raphael": "^2.2.7",
        "select2": "^4.0.13",
        "socicon": "^3.0.5",
        "sticky-js": "^1.2.0",
        "stream-exhaust": "^1.0.2",
        "summernote": "^0.8.16",
        "sweetalert2": "^8.0.6",
        "tagify": "^0.1.1",
        "tether": "^1.4.3",
        "tinymce": "^5.2.0",
        "toastr": "^2.1.4",
        "tooltip.js": "^1.2.0",
        "underscore": "^1.8.3",
        "uppy": "^1.10.1",
        "waypoints": "^4.0.1",
        "whatwg-fetch": "^3.0.0",
        "wnumb": "^1.1.0"
    },
    "devDependencies": {
        "@turf/turf": "^5.1.6",
        "axios": "^0.19.2",
        "cross-env": "^5.1",
        "laravel-mix": "^5.0.4",
        "lodash": "^4.17.15",
        "moment": "^2.24.0",
        "resolve-url-loader": "^2.3.1",
        "sass": "^1.26.3",
        "sass-loader": "^8.0.0",
        "standard": "^14.3.3",
        "vue-template-compiler": "^2.6.11"
    },
    "standard": {
        "globals": [
            "$",
            "jQuery",
            "_",
            "moment",
            "turf",
            "swal",
            "toastr",
            "axios",
            "L",
            "FormData",
            "KTUtil",
            "KTApp"
        ]
    }
}

It has alot of packages. This project is not mine, I just joined to the team. Can reason of the error be errors in this file?

Thanks!


Solution

  • Use format: 'LT', check the documentation:

    $('#departure-time').datetimepicker({
      // todayHighlight: true,
      // autoclose: true,
      format: 'LT'
    }).on('change', function () {
    });
    

    Update

    Working example (jQuery 2.x, Bootstrap 3):

    $(function() {
      $('#departure-time').datetimepicker({
        // todayHighlight: true,
        // autoclose: true,
        format: 'LT'
      }).on('change', function() {});
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/moment.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.7.14/js/bootstrap-datetimepicker.min.js"></script>
    
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.7.14/css/bootstrap-datetimepicker.min.css">
    
    <div class="container">
      <div class="row">
        <div class='col-sm-6'>
          <div class="form-group">
            <div class='input-group date' id='departure-time'>
              <input type='text' class="form-control" />
              <span class="input-group-addon">
                <span class="glyphicon glyphicon-time"></span>
              </span>
            </div>
          </div>
        </div>
      </div>
    </div>

    I used jQuery version 2.x because of this bug.

    Update 2

    Here's another working example using

    jQuery 3.3.1

    Bootstrap 4.4.1

    Bootstrap-datetimepicker 4.17.47

    The Glyphicons removed in Bootstrap 4, so I included them from Bootstrap 3.

    The bootstrap-datetimepicker you use is very old, you should update it to a newer version.

    Use npm update or npm update bootstrap-datetimepicker or bootstrap-datetimepicker@4.17.47 for a specific version or you can change it in the package.json file.

    If the version not changed, you can try to remove the file package-lock.json (save a copy of it) and modify the version in your package.json and run npm install.

    $(function() {
      $('#departure-time').datetimepicker({
        format: 'LT'
      }).on('change', function() {});
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/moment.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/eonasdan-bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js"></script>
    
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/eonasdan-bootstrap-datetimepicker/4.17.47/css/bootstrap-datetimepicker.min.css">
    
    <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-glyphicons.css">
    
    <div class="container">
      <div class="row">
        <div class='col-sm-6'>
          <div class="form-group">
            <div class='input-group date' id='departure-time'>
              <input type='text' class="form-control" />
              <span class="input-group-addon">
                <span class="glyphicon glyphicon-time"></span>
              </span>
            </div>
          </div>
        </div>
      </div>
    </div>