Как я могу отфильтровать данные XML на основе текущего времени до 3 часов? - PullRequest
0 голосов
/ 01 июля 2019

Я пишу веб-приложение для вылета из аэропорта, используя фид данных XML.Я хочу, чтобы страница фильтровала данные с текущего времени до 3 часов с момента обновления.

Я пытался добавить a для каждой функции, но застрял при фильтрации данных для возврата после фильтрации атрибута «данных» XML-данных.

XML

 <row id="17802" adi="D" schedule="2019-07-01T09:43:00"   actual="2019-07-01T09:43:00" change="2019-07-01T10:02:18.027"></row>
 <row id="17891" adi="A" schedule="2019-07-01T09:45:00" actual="2019-07-01T09:35:00" change="2019-07-01T09:46:30.440"></row>
 <row id="17891" adi="A" schedule="2019-07-01T09:50:00" actual="2019-07-01T09:35:00" change="2019-07-01T09:46:30.440"></row>

Javascript

        //Look at what time it is right Now
        var timeNow = new Date();



        //time plus 3 hours
        var endTime = timeNow.setHours(timeNow.getHours() + 3);


        //Grab Data and filter based on time window
        $(data).find('row').each(function(){
         var timeXML =   $(this).attr('schedule');
         if (timeXML.length == timeNow && timeXML.length <= endTime) {

         return(data);

         }
          });

Я хочу вернуть данные, основанные на текущем времени и 3 часах динамически.В настоящее время на основе канала показывает весь день.Спасибо всем, кто мог бы помочь мне в продвинутом.

1 Ответ

0 голосов
/ 06 июля 2019

См. Код ниже. Код пересекает строки и сопоставляет время расписания с «сейчас». Он считает случаи, когда абс дельта <3 часа </p>

!DOCTYPE html>
<html>
<body>

<p id="demo">hhh</p>

<script>
var parser, xmlDoc;
var text = `<rows> 
   <row id="17802" adi="D" schedule="2019-07-06T01:43:00" actual="2019-06-01T09:43:00" change="2017-07-01T10:02:18.027" /> 
   <row id="17891" adi="A" schedule="2019-07-01T09:45:00" actual="2019-07-01T09:35:00" change="2019-07-01T09:46:30.440" /> 
   <row id="17891" adi="A" schedule="2019-07-01T09:50:00" actual="2019-07-01T09:35:00" change="2021-06-01T09:46:30.440" /> 
</rows>` ;

parser = new DOMParser();
xmlDoc = parser.parseFromString(text,"text/xml");

var rows = xmlDoc.getElementsByTagName("row");
document.getElementById("demo").innerHTML = rows.length;
var now = Date.now();
var count = 0;
for(var i = 0; i < rows.length; i++) {
   var t = rows[i].getAttribute('schedule')
   var tt = Date.parse(t);
   var delta_t =  Math.abs(tt - now) / 3600000;
   if (delta_t < 3) {
      count++;
   }
}

document.getElementById("demo").innerHTML = count;


</script>

</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...