2015-06-07 4 views
0

Я борюсь за то, как это осуществить. Я довольно новичок в этом языке, поэтому любая помощь будет очень признательна.PHP общее количество дней, сделанных как отпуск в течение года

У меня есть функциональность, благодаря которой пользователи могут регистрировать ежегодный отпуск, указывая дату и дату из и т. Д. То, что я хотел бы сделать, это показать количество оставшихся/установленных ограничений при отходе от леса они переходят через 25-дневный лимит в течение года.

Я рассмотрел различные функции php, такие как интервал даты и дата, но не могу понять, как я буду их использовать.

+1

Пожалуйста, покажите некоторые больше информации. Наименьшая информация, необходимая для ответа на вопрос, - это способ хранения информации. Вероятно, эту информацию можно просто получить в одном запросе из MySQL. – GolezTrol

ответ

0

Я бы сделал что-то подобное, чтобы подсчитать общее количество принятых дней.

<?php 
$time_off_requests = array(0 => array('start_date' => '2015-01-01', 'end_date' => '2015-01-14'), array('start_date' => '2015-12-20', 'end_date' => '2016-01-02'); 
$total_days = 0; 
foreach($time_off_requests as $time_out) { 
    $datetime1 = new DateTime($time_out['start_date']); 
    $datetime2 = new DateTime($time_out['end_date']); 
    $interval = $datetime1->diff($datetime2); 
    $total_days += (int)$interval->format('%a'); 
} 
echo 'Out for a total of '.$total_days.' days this period.'; 

Однако если ваши данные в базе данных MySQL, я хотел бы предложить сделать это в SQL Query, если у вас есть веские причины не делать этого.

0
$maxHolidays = 25; 
    $holidaysTaken = 0; //populate this from a database, Past holidays 
    $start = new DateTime('2015-07-26'); 
    $end = new DateTime('2015-08-26'); 
    $diff = $dStart->diff($dEnd); 

    if ($holidaysTaken + $diff < $maxHolidays) { 
    // Add the holiday 
    //add to the database 
    } else { 
    //reject the holiday 
    } 

Нечто подобное должно работать,

В действительности, хотя полдня праздников возможны

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

Смежные вопросы