jQuery, если дата публикации старше, чем сегодня, переместите ее в другой раздел - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть страница событий с двумя элементами div, один из которых содержит предстоящие события, а другой содержит прошлые события.

Я хотел бы, чтобы скрипт автоматически проверял дату каждого события в div предстоящих событий, и если дата какого-либо события произошла в прошлом (до СЕГОДНЯ), то он должен автоматически перемещать это событие в div прошлых событий.

Моя разметка выглядит примерно так:

<div class="all-events">

    <div class="upcoming-events">
        <div class="event">
            <p class="event-date"></p>
            .
            .
            .

        </div>
    </div>
    <div class="past-events">
        <div class="event">
            <p class="event-date"></p>
            .
            .
            .

        </div>
    </div>
</div>  

Я хочу, чтобы скрипт

После некоторых исследований я нашел этот код для сравнения двух вещей с использованием javascript:

<script>
 var date = document.getElementById("inputDate").value;
var varDate = new Date(date); //dd-mm-YYYY
var today = new Date();
today.setHours(0,0,0,0);

if(varDate >= today) {
    alert("Working!");  
}

</script>

Но я не уверен, может ли это помочь в моем случае.

Спасибо

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Я новичок, но хочу попробовать:

var eventdates = document.querySelectorAll(".event-date");
var today = new Date();
today.setHours(0,0,0,0);

// Loop of all event dates
for (var i = 0; i < eventdates.length; i++) {
  var varDate = new Date(eventdates[i].textContent); 

  // Compare date
  if(varDate < today) {

    //Get Parent node of each <p class="event-date">...</p>
    var event = eventdates[i].parentNode;

    // Get the node index of <div class="events" when moving to upcoming events
    var event_index = [].indexOf.call(event.parentNode.children, event);

    // Get upcoming events container                                  
    var upcoming_events = document.querySelector(".upcoming-events");

    // Get past events container
    var past_events = document.querySelector(".past-events");

    // move the <div class="events" with node index to upcoming events 
    upcoming_events.appendChild(past_events.childNodes[event_index]);
  }
}

Скажи мне, если это работает. Спасибо.

0 голосов
/ 07 сентября 2018

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

Это должно сделать это:

var postDateInput = $('.event-date').text();
var postDate = new Date(postDateInput);
var todayDate = new Date();
todayDate.setHours(0,0,0,0);

if(postDate < todayDate) {
  // past events
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...