2013-12-11 3 views
-2

Я пытаюсь создать систему управления сотрудниками, в которой сотрудник может войти внутрь и ввести, с какой даты они работали, с какого времени до какого времени (например, с 10:00 до 18: 00) и тому подобное.Обнаружение, смену или смену сотрудника работало в

Итак, сложная часть заключается в том, что в моей работе происходят сдвиги, когда меняется зарплата. Как утренняя смена (с 00:00 до 06:00), смена полдень (с 06:00 до 17:00) и ночная смена (с 17:00 до 00:00).

Итак, что я хочу сделать систему PHP, которая автоматически определяет, какой «ставка заработной платы» их время в

Я пробовал много способов, как:.

<?php 
    $timeStart = $_POST["timeStart"]; 
    $timeEnd = $_POST["timeEnd"]; 

    if($timeStart >= "00:00" AND $timeEnd <= "06:00"){ 
    $rate1 = "1"; 
    } 
?> 

Но теперь я знаю, что вы не работаете со временем, и это не сработает.

Также в этой системе есть еще одна сложная вещь, которую я также не мог заставить работать.

Если работник приходит к тому, что он работал от 18:00 до 02:00, что составляет 8 часов, он находится в двух «ставках заработной платы», что должно привести к смене системы $rate3, которая является ночной сменой значение "1" и изменить $rate1 который является утренней сменой к значению "1" и так далее.

Итак, я хотел бы спросить вас, если вы знаете, как заставить все это работать.

+0

Какой формат времени? – AbraCadaver

+0

Попробуйте функцию strtotime PHP для лучшего сравнения. – sulmanpucit

+0

@AbraCadaver Формат времени в hh: mm, если это было то, о чем вы просили – Ismail

ответ

0
$timeStart = date('Gi', strtotime($_POST["timeStart"])); 
$timeEnd = date('Gi', strtotime($_POST["timeEnd"])); 

if($timeStart >= 0 && $timeEnd <= 600){ 
    $rate1 = "1"; 
} 

Другая часть намного сложнее.

+0

Вам было бы лучше работать с отметками времени, чтобы предотвратить проблемы с полуночью (200-2000 = - 1800 вместо 6 часов). Кроме того, использование 'Gi' является нечетным, потому что вы можете закончиться минутными минутами> 60. –

+0

@ Джонатан Кун: У вас есть пример *« Работа с отметками времени »* с учетом входов OP? Кроме того, как «я когда-нибудь вернусь» 59? – AbraCadaver

+0

Вы правы, что, учитывая приведенный выше код, вы ничего не вернете. 59, однако, думая о будущем, следующий шаг, который захочет сделать, - это рассчитать, сколько часов в каждом курсе работал сотрудник. Временные метки сделают это намного проще, как если бы я работал с 430 до 1215, с 7:45 смены, вычитая 430 из 1215, дал бы вам 785, который не очень хорошо преобразуется вовремя. Просто говоря, что используя временные метки, вы можете получить оба, сдвиг и часы, работающие в каждой смене, без двух разных вычислений/конверсий. –

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