我已经启动了日历,并且日历渲染正确。

我正在使用选择下拉列表跳到一个月。这是我的代码。

HTML:

<select name="months">
    <option value="">Select a month ...</option>
    <option value="0">January</option>
    <option value="1">February</option>
    <option value="2">March</option>
    <option value="3">April</option>
    <option value="4">May</option>
    <option value="5">June</option>
    <option value="6">July</option>
    <option value="7">August</option>
    <option value="8">September</option>
    <option value="9">October</option>
    <option value="10">November</option>
    <option value="11">December</option>
</select>


JS:

jQuery('select[name="months"]').change(function() {
    var month = jQuery(this).val();

    // console.log(month);

    jQuery('#calendar').fullCalendar('gotoDate', 2016, month);

});


由于某些原因,当我更改月份时,日历会跳至1970年1月。

有任何想法吗?

最佳答案

看看goToDate的fullCalendar文档:


  gotoDate
  
  将日历移动到任意日期。
  
  .fullCalendar('gotoDate',date),其中date可以是Moment对象,或者
  Moment构造函数接受的所有内容。


更改日期时,您需要传递moment.js date,否则该时刻可以转换为时刻日期。由于您的日期不是有效的“时刻”日期,因此会将您选择的日期默认为“ 0”纪元时间。

您需要的代码如下:

jQuery('#calendar').fullCalendar('gotoDate', [momentObjectHere]);


有趣的事实:您看到结果为1970年的原因是,1970年在纪元时间为“ 0”。这是一种将时间表示为数字的方式。如果您有兴趣,可以阅读有关epoch time here的更多信息。

http://fullcalendar.io/docs/current_date/gotoDate/

09-27 05:11