在午夜更新整个日历日

时间:2019-01-11 22:51:40

标签: javascript fullcalendar

    //Reset At Midnight
function resetAtMidnight() {
    var now = new Date();
    var night = new Date(
        now.getFullYear(),
        now.getMonth(),
        now.getDate() + 1, // the next day, ...
        0, 0, 0 // ...at 00:00:00 hours
    );
    var msToMidnight = night.getTime() - now.getTime();

    setTimeout(function() {
        reset();              //      <-- This is the function being called at midnight.
        resetAtMidnight();    //      Then, reset again next midnight.
    }, msToMidnight);
}


function reset() {
     $('#calendar').fullCalendar('today');
}     

我试图让FullCalendar.js每天午夜更新当天。我从此处的另一篇文章中拉出了此重置代码段-但重置功能似乎未执行。

1 个答案:

答案 0 :(得分:0)

您没有提供完整的详细信息,所以我不知道您到底需要什么,但是遵循以下代码可以帮助您解决问题。

您可以使用moment.js库轻松地检查午夜。 以下代码摘自另一篇Best Way to detect midnight and reset data

$(document).ready(function() {
  var midnight = "0:00:00";
  var now = null;

  setInterval(function() {
    now = moment().format("H:mm:ss");
    if (now === midnight) {
      alert('reset() function here');
    }
    $("#time").text(now);
  }, 1000);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.23.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<code id="time"></code>

完全控制:

您可以根据需要使用rerenderEventsrefetchEvents。所以会是这样

function reset(){
    $('#calendar').fullCalendar('rerenderEvents');
OR

    $('#calendar').fullCalendar('refetchEvents');
}

如果您想重新绘制完全控件,则这是另一条内容丰富的帖子're-draw fullcalendar'

如您所愿,您可以

$('#calendar').fullCalendar('destroy');
$('#calendar').fullCalendar('render');