проверка записи в столбце - PullRequest
0 голосов
/ 15 января 2019

Скриншот

Я пытаюсь проверить, есть ли в строке Дата прибытия, тогда моя функция должна выполнить вычисление, иначе ничего не делать. Как вы можете видеть на картинке, первая строка имеет все значения и время LOS правильное, но другие строки не имеют значений, и LOS должен быть пустым.

Вот мой код модели:

function time_ago($ptime) {

    $query = null; //emptying in case 
    $shift_id   = $_POST['shift_id'];
    $arrival_time = $_POST['arrival_time'];
    $query = $this->db->get_where('shift', array('shift_id' => $shift_id));
    $count = $query->num_rows(); //counting result from query       

    if ($count = 0) {

    $today = time();
    $createdday = strtotime($ptime); //mysql timestamp of when post was created 

    $datediff = abs($today - $createdday);
    $difftext = "";
    $years = floor($datediff / (365 * 60 * 60 * 24));
    $months = floor(($datediff - $years * 365 * 60 * 60 * 24) / (30 * 60 * 60 * 24));
    $days = floor(($datediff - $years * 365 * 60 * 60 * 24 - $months * 30 * 60 * 60 * 24) / (60 * 60 * 24));
    $hours = floor($datediff / 3600);
    $minutes = floor($datediff / 60);
    $seconds = floor($datediff);
    //year checker  
    if ($difftext == "") {
        if ($years > 1)
            $difftext = $years . " years";
        elseif ($years == 1)
            $difftext = $years . " year";
    }
    //month checker  
    if ($difftext == "") {
        if ($months > 1)
            $difftext = $months . " months";
        elseif ($months == 1)
            $difftext = $months . " month";
    }
    //month checker  
    if ($difftext == "") {
        if ($days > 1)
            $difftext = $days . " days";
        elseif ($days == 1)
            $difftext = $days . " day";
    }
    //hour checker  
    if ($difftext == "") {
        if ($hours > 1)
            $difftext = $hours . " hours";
        elseif ($hours == 1)
            $difftext = $hours . " hour";
    }
    //minutes checker  
    if ($difftext == "") {
        if ($minutes > 1)
            $difftext = $minutes . " minutes";
        elseif ($minutes == 1)
            $difftext = $minutes . " minute";
    }
    //seconds checker  
    if ($difftext == "") {
        if ($seconds > 1)
            $difftext = $seconds . " seconds";
        elseif ($seconds == 1)
            $difftext = $seconds . " second";
    }
    return $difftext;
}else{
return null; 
}
 }

1 Ответ

0 голосов
/ 16 января 2019

вы можете добавить новое условие в функцию вместо проверки SQL Ваша функция будет выглядеть так:

    function time_ago($ptime) {
    $today = time();
    $createdday = strtotime($ptime); //mysql timestamp of when post was created     
    $datediff = abs($today - $createdday);
    $difftext = "";
    $years = floor($datediff / (365 * 60 * 60 * 24));
    $months = floor(($datediff - $years * 365 * 60 * 60 * 24) / (30 * 60 * 60 * 24));
    $days = floor(($datediff - $years * 365 * 60 * 60 * 24 - $months * 30 * 60 * 60 * 24) / (60 * 60 * 24));
    $hours = floor($datediff / 3600);
    $minutes = floor($datediff / 60);
    $seconds = floor($datediff);
    //year checker  
    if ($difftext == "") {
        if ($years > 1)
            $difftext = $years . " years";
        elseif ($years == 1)
            $difftext = $years . " year";
    }
    //month checker  
    if ($difftext == "") {
        if ($months > 1)
            $difftext = $months . " months";
        elseif ($months == 1)
            $difftext = $months . " month";
    }
    //month checker  
    if ($difftext == "") {
        if ($days > 1)
            $difftext = $days . " days";
        elseif ($days == 1)
            $difftext = $days . " day";
    }
    //hour checker  
    if ($difftext == "") {
        if ($hours > 1)
            $difftext = $hours . " hours";
        elseif ($hours == 1)
            $difftext = $hours . " hour";
    }
    //minutes checker  
    if ($difftext == "") {
        if ($minutes > 1)
            $difftext = $minutes . " minutes";
        elseif ($minutes == 1)
            $difftext = $minutes . " minute";
    }
    //seconds checker  
    if ($difftext == "") {
        if ($seconds > 1)
            $difftext = $seconds . " seconds";
        elseif ($seconds == 1)
            $difftext = $seconds . " second";
    }
    if ($difftext == "49 years") {
            $difftext = "";
    }
    return $difftext;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...