"TypeError: date.match is not a function" in datepicker bootsrap

13,369

Solution 1

I got it, I just change the last row of code:

$('#datepicker').datepicker('update', datas); //to
$('#datepicker').datepicker('setDate', datas); 

Thanks All!

Solution 2

A "local" Date object, refers to Javascript Date Object

Some examples of how initialize it

var today = new Date();
var birthday = new Date('December 17, 1995 03:24:00');
var birthday = new Date('1995-12-17T03:24:00');
var birthday = new Date(1995, 11, 17);
var birthday = new Date(1995, 11, 17, 3, 24, 0);

var unixTimestamp = Date.now(); // in milliseconds

As it's suggested in another answer, you can use setDates

$('#datepicker').datepicker({
  format: "dd/mm/yyyy",
  language: "pt-BR",
  multidate: true,
});

var datas = [
    new Date(2015, 5, 19), //remember, months in javascript starts with 0 for january
    new Date(2015, 5, 15)
];
$('#datepicker').datepicker('setDates', datas)

JSFiddle demo

Solution 3

The problem is update won't take an array as its second parameter.

One option is you can use setDates

$('#datepicker').datepicker({
  format: "dd/mm/yyyy",
  language: "pt-BR",
  multidate: true,
});

var datas = ["2015-06-19", "2015-06-15"];
$('#datepicker').datepicker('setDates', datas)
<script type="text/javascript" src="//code.jquery.com/jquery-1.10.1.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.4/css/bootstrap.css" />
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.4/css/bootstrap-theme.css" />
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.4/js/bootstrap.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.4.0/css/bootstrap-datepicker3.css" />
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.4.0/js/bootstrap-datepicker.js"></script>

<input id="datepicker" />

Or do something like

$('#datepicker').datepicker({
  format: "dd/mm/yyyy",
  language: "pt-BR",
  multidate: true,
});

var datas = ["2015-06-19", "2015-06-15"];
datas.unshift('update');
var $el = $('#datepicker');
$el.datepicker.apply($el, datas)
<script type="text/javascript" src="//code.jquery.com/jquery-1.10.1.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.4/css/bootstrap.css" />
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.4/css/bootstrap-theme.css" />
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.4/js/bootstrap.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.4.0/css/bootstrap-datepicker3.css" />
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.4.0/js/bootstrap-datepicker.js"></script>

<input id="datepicker" />
Share:
13,369
Rodrigo de Farias
Author by

Rodrigo de Farias

Updated on July 22, 2022

Comments

  • Rodrigo de Farias
    Rodrigo de Farias almost 2 years

    I got this error ""TypeError: date.match is not a function" when i try to set up a date list to be showed in datepicker

    $('#datepicker').datepicker({
        format: "dd/mm/yyyy",
        language: "pt-BR",
        multidate: true
    });
    //this dates is just a example, I already try to create from another way like:
    // var data = new Array("2015-06-19", "2015-06-15") 
    //and also not work!
    
    var dates = ["2015-06-19", "2015-06-15"];
    $('#datepicker').datepicker('update', datas);
    

    I notice in the doc "Each date is assumed to be a “local” date object, and will be converted to UTC for internal use."

    I don't understood what it means. Should I create a list of dates or an Array? what is the difference between them, they are not the same thing?

  • davcs86
    davcs86 over 8 years
    If you use var datas = ["2015-06-19", "2015-06-15"]; your site will have problems in browsers with different regional settings. For example, in my browser, I get "05/12/24,05/12/20" screenshot