Сравнить и подсчитать переменные даты? - PullRequest
0 голосов
/ 18 февраля 2020

Используя приведенное ниже утверждение, я получаю значение Дата окончания курса , которая находится в varchar и поступает из MySQL Я пытался преобразовать это в формат даты в $ ced & $ newformat ... все идет хорошо, но когда я пытаюсь сравнить дату окончания курса с текущей датой, она не сравнивается ... она только сравнивает дату и не сравнивается с годом и месяцем

 $enddate = $get_students_row['course_end_date'];
 $ced = strtotime("$enddate");
 $newformat = date('d/m/Y',$ced);
 $currentdate = date('d/m/Y');

Функция имеет значение, если $ newformat меньше чем и равно текущей дате, тогда поле становится красным

<tr <?php if(($newformat <= $currentdate)): ?> style="color:red;" <?php endif; ?>>

Но оно не работает, за исключением того, что делает строку строки красным, но это единственное сопоставление с текущей датой, а не с месяцем и годом. .. . Также я искал, чтобы получить Общее количество $ newformat.

Мой код

                <tr <?php if(($ced <= time())): ?> style="color:red;" <?php endif; ?>>

                   <td><?php  echo $students_rollno_class;?></td>
                   <td><?php  echo $students_admission_no;?> </td>
                   <td><?php  echo $students_firstname;?></td>
                   <td><?php  echo $students_contact;?></td>
                   <td><?php  echo $students_reference_no;?></td>
                   <td><?php  echo date('d/m/Y', strtotime($students_date));?></td>
                   <td><?php  echo $newformat;?></td>



               </tr><?php
                    }
                   ?>

Ответы [ 3 ]

0 голосов
/ 18 февраля 2020

Вы можете увидеть сравнение в этом национальном формате

$format = "d_m_y";
$date1  = \DateTime::createFromFormat($format, "03_01_12");
$date2  = \DateTime::createFromFormat($format, "31_12_11");

var_dump($date1 > $date2);

Использование DateTime :: createFromFormat :

0 голосов
/ 18 февраля 2020

$('#timeTable tr td').each(function () {
    var dtTd = new Date($(this).html());
    var dtNew = new Date();
    // 15 minutes is 900000 milliseconds
   
    if (dtTd.getTime() - dtNew.getTime() < 900000 && dtNew < dtTd) {
        $(this).parent('tr').addClass('min15');
    } else {
        if (dtNew > dtTd) {
            $(this).parent('tr').addClass('old');
        }
    }
});
.old {
    background-color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<table id="timeTable">
    <tbody>
        <tr>
            <td>02/07/2015 23:15</td>
        </tr>
        <tr>
            <td>03/09/2015 11:16</td>
        </tr>
        <tr>
            <td>18/02/2020 11:30</td>
        </tr>
    </tbody>
</table>
0 голосов
/ 18 февраля 2020

$newformat и $currentdate - простые строки для PHP. И сравнение двух строк не даст ожидаемого ответа. Так что лучше использовать UNIX формат времени.

попробуйте это:

<tr <?php if(($ced <= time())){ 
   $totalCount++;
   echo 'style="color:red;" ';
<?php } ?>>

Мой <tr> Код

 <tr <?php if(($ced <= time())): ?> style="color:red;" <?php endif; ?>>
     <td><?php  echo $students_rollno_class;?></td>
     <td><?php  echo $students_admission_no;?> </td>
     <td><?php  echo $students_firstname;?></td>
     <td><?php  echo $students_contact;?></td>
     <td><?php  echo $students_reference_no;?></td>
     <td><?php  echo date('d/m/Y', strtotime($students_date));?></td>
     <td><?php  echo $newformat;?></td>
 </tr><?php } ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...