Обновление полного календарного дня в полночь - PullRequest
0 голосов
/ 12 января 2019
    //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 голосов
/ 17 января 2019

Вы не предоставили полную информацию, поэтому я не знаю, что именно вам нужно, но следующий код может помочь вам решить вашу проблему.

Вы можете легко проверить полночь с помощью библиотеки moment.js . Следующий код был взят из другого поста Лучший способ обнаружить полночь и сбросить данные

$(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>

FullControl:

Вы можете использовать rerenderEvents или refetchEvents в соответствии с вашими требованиями. Так будет примерно так

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

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

Если вы хотите перерисовать полный контроль, вот еще один информативный пост ' перерисовать полный календарь '

Как и предлагал пост, вы можете сделать

$('#calendar').fullCalendar('destroy');
$('#calendar').fullCalendar('render');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...