Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- // CLOCK EVENTS
- $clockIn = "2018-01-09 06:55:55";
- $clockOut = "2018-01-09 17:34:20";
- // MICROTIME CONVERTED
- $clockinMicro = strtotime($clockIn);
- $clockOutMicro = strtotime($clockOut);
- // GET NUMERICAL VALUE OF THE CLOCK EVENT YEAR
- $clockInYear = date('Y', $clockinMicro);
- $clockOutYear = date('Y', $clockOutMicro);
- // GET NUMERICAL VALUE OF THE CLOCK EVENT MONTH
- $clockInMonth = date('m', $clockinMicro);
- $clockOutMonth = date('m', $clockOutMicro);
- // GET NUMERICAL VALUE OF THE CLOCK EVENT DAY
- $clockInDay = date('d', $clockinMicro);
- $clockOutDay = date('d', $clockOutMicro);
- // GET NUMERICAL VALUE OF THE CLOCK EVENT HOUR
- $clockInHour = date('H', $clockinMicro);
- $clockOutHour = date('H', $clockOutMicro);
- // GET NUMERICAL VALUE OF THE CLOCK EVENT MIN
- $clockInMin = date('i', $clockinMicro);
- $clockOutMin = date('i', $clockOutMicro);
- // GET NUMERICAL VALUE OF THE CLOCK EVENT SECOND
- $clockInSec = date('s', $clockinMicro);
- $clockOutSec = date('s', $clockOutMicro);
- $count = $clockInHour;
- if ($clockInHour <= $clockOutHour) {
- // SINGLE DAY
- while ($count <= $clockOutHour) {
- $zoneTotal = 0;
- // GET THE NEXT 'HOUR' ZONE START
- $thisZoneStart = $count;
- // CONVERT IT INTO A DATE STRING
- $thisZoneTimestampString = $clockInYear . "-" . $clockInMonth . "-" . $clockInDay . " " . $thisZoneStart . ":00:00";
- // CONVERT IT TO MICROTIME
- $thisZoneTimestampMicro = strtotime($thisZoneTimestampString);
- // GET THE DAY NAME
- $thisZoneDayName = date('l', $thisZoneTimestampMicro);
- // RETURN ZONE RATE BASED ON 2 ITEMS, DAYNAME ($thisZoneDayName) and ($thisZoneStart)
- // TODO: WRITE FUNCTION TO RETURN ZONE RATE FROM ZONE TABLE
- // $getZoneRate = getZoneRate($link, $dayName, $time);
- // GET THE NEXT 'HOUR' ZONE START
- $nextZoneStart = $count + 1;
- // CONVERT IT INTO A DATE STRING
- $nextZoneTimestampString = $clockInYear . "-" . $clockInMonth . "-" . $clockInDay . " " . $nextZoneStart . ":00:00";
- // CONVERT IT TO MICROTIME
- $nextZoneTimestampMicro = strtotime($nextZoneTimestampString);
- // IF THE CLOCKIN HOUR IS THE SAME AS $COUNT
- if ($clockInHour == $count) {
- $zoneTotal = round(((($nextZoneTimestampMicro - $clockinMicro) / 60 ) / 60 ), 2);
- // IF THE CLOCKOUT HOUR IS THE SAME AS $COUNT
- } elseif ($clockOutHour == $count) {
- $zoneTotal = round(((($clockOutMicro - $thisZoneTimestampMicro) / 60 ) / 60 ), 2);
- // ZONE WILL BE 1 HOUR
- } else {
- $zoneTotal = 1;
- }
- echo $thisZoneTimestampString . "<br>";
- echo $zoneTotal . "<br>";
- echo $thisZoneDayName . "<br>";
- echo "<br>";
- // TODO:
- // WRITE FUNCTION TO CREATE 'SHIFT_ITEMS' FOR EACH LOOP UNTIL IT STOPS
- $count++;
- }
- } else {
- // MULTI-DAY IS BROKEN INTO 2 SECTIONS
- // SECTION 1)
- // DIFFERENCE BETWEEN CLOCK-IN TIME AND MIDNIGHT THAT NIGHT
- // SECTION 2)
- // DIFFERENCE BETWEEN MIDNIGHT AND CLOCK-OUT TIME
- } // END ELSE
Add Comment
Please, Sign In to add comment