【问题标题】:"TypeError: date.match is not a function" in datepicker bootsrapdatepicker 引导程序中的“TypeError:date.match 不是函数”
【发布时间】:2023-03-18 01:54:01
【问题描述】:

当我尝试设置要在 datepicker 中显示的日期列表时,出现此错误““TypeError: date.match is not a function”

$('#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);

我在doc 中注意到“每个日期都假定为“本地”日期对象,并将转换为 UTC 以供内部使用。”

我不明白这是什么意思。我应该创建日期列表还是数组?它们之间有什么区别,它们不是一回事?

【问题讨论】:

  • dd/mm/aaaa --- 这是什么?
  • 对不起,正确的是 dd/mm/yyyy 我有变化,因为在我的国家 ano = year
  • 现在 - 格式与您在 datas 数组中传递的内容不匹配。
  • 但这不是问题
  • 你觉得有道理吗?如果你不遵循它,为什么还要有格式。

标签: javascript jquery arrays datepicker bootstrap-datepicker


【解决方案1】:

问题是更新不会将数组作为第二个参数。

一个选项是你可以使用 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" />

或者做类似的事情

$('#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" />

【讨论】:

    【解决方案2】:

    我明白了,我只是改了最后一行代码:

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

    谢谢大家!

    【讨论】:

    • 如果您使用var datas = ["2015-06-19", "2015-06-15"];,您的站点将在具有不同区域设置的浏览器中出现问题。例如,在我的浏览器中,我得到“05/12/24,05/12/20”screenshot
    【解决方案3】:

    一个“本地”Date 对象,指的是Javascript Date Object

    一些如何初始化它的例子

    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
    

    正如另一个答案中建议的那样,您可以使用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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-13
      • 1970-01-01
      • 2018-09-24
      • 1970-01-01
      • 2019-05-13
      • 2018-05-21
      • 1970-01-01
      • 2013-09-14
      相关资源
      最近更新 更多