Guest User

Untitled

a guest
Jan 22nd, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.24 KB | None | 0 0
  1. <?php
  2.  
  3. // CLOCK EVENTS
  4. $clockIn = "2018-01-09 06:55:55";
  5. $clockOut = "2018-01-09 17:34:20";
  6.  
  7. // MICROTIME CONVERTED
  8. $clockinMicro = strtotime($clockIn);
  9. $clockOutMicro = strtotime($clockOut);
  10.  
  11. // GET NUMERICAL VALUE OF THE CLOCK EVENT YEAR
  12. $clockInYear = date('Y', $clockinMicro);
  13. $clockOutYear = date('Y', $clockOutMicro);
  14.  
  15. // GET NUMERICAL VALUE OF THE CLOCK EVENT MONTH
  16. $clockInMonth = date('m', $clockinMicro);
  17. $clockOutMonth = date('m', $clockOutMicro);
  18.  
  19. // GET NUMERICAL VALUE OF THE CLOCK EVENT DAY
  20. $clockInDay = date('d', $clockinMicro);
  21. $clockOutDay = date('d', $clockOutMicro);
  22.  
  23. // GET NUMERICAL VALUE OF THE CLOCK EVENT HOUR
  24. $clockInHour = date('H', $clockinMicro);
  25. $clockOutHour = date('H', $clockOutMicro);
  26.  
  27. // GET NUMERICAL VALUE OF THE CLOCK EVENT MIN
  28. $clockInMin = date('i', $clockinMicro);
  29. $clockOutMin = date('i', $clockOutMicro);
  30.  
  31. // GET NUMERICAL VALUE OF THE CLOCK EVENT SECOND
  32. $clockInSec = date('s', $clockinMicro);
  33. $clockOutSec = date('s', $clockOutMicro);
  34.  
  35. $count = $clockInHour;
  36.  
  37. if ($clockInHour <= $clockOutHour) {
  38. // SINGLE DAY
  39.  
  40.  
  41. while ($count <= $clockOutHour) {
  42. $zoneTotal = 0;
  43.  
  44. // GET THE NEXT 'HOUR' ZONE START
  45. $thisZoneStart = $count;
  46.  
  47. // CONVERT IT INTO A DATE STRING
  48. $thisZoneTimestampString = $clockInYear . "-" . $clockInMonth . "-" . $clockInDay . " " . $thisZoneStart . ":00:00";
  49. // CONVERT IT TO MICROTIME
  50. $thisZoneTimestampMicro = strtotime($thisZoneTimestampString);
  51. // GET THE DAY NAME
  52. $thisZoneDayName = date('l', $thisZoneTimestampMicro);
  53.  
  54. // RETURN ZONE RATE BASED ON 2 ITEMS, DAYNAME ($thisZoneDayName) and ($thisZoneStart)
  55. // TODO: WRITE FUNCTION TO RETURN ZONE RATE FROM ZONE TABLE
  56. // $getZoneRate = getZoneRate($link, $dayName, $time);
  57.  
  58.  
  59. // GET THE NEXT 'HOUR' ZONE START
  60. $nextZoneStart = $count + 1;
  61. // CONVERT IT INTO A DATE STRING
  62. $nextZoneTimestampString = $clockInYear . "-" . $clockInMonth . "-" . $clockInDay . " " . $nextZoneStart . ":00:00";
  63. // CONVERT IT TO MICROTIME
  64. $nextZoneTimestampMicro = strtotime($nextZoneTimestampString);
  65.  
  66.  
  67. // IF THE CLOCKIN HOUR IS THE SAME AS $COUNT
  68. if ($clockInHour == $count) {
  69. $zoneTotal = round(((($nextZoneTimestampMicro - $clockinMicro) / 60 ) / 60 ), 2);
  70. // IF THE CLOCKOUT HOUR IS THE SAME AS $COUNT
  71. } elseif ($clockOutHour == $count) {
  72. $zoneTotal = round(((($clockOutMicro - $thisZoneTimestampMicro) / 60 ) / 60 ), 2);
  73. // ZONE WILL BE 1 HOUR
  74. } else {
  75. $zoneTotal = 1;
  76. }
  77.  
  78.  
  79. echo $thisZoneTimestampString . "<br>";
  80. echo $zoneTotal . "<br>";
  81. echo $thisZoneDayName . "<br>";
  82. echo "<br>";
  83.  
  84. // TODO:
  85. // WRITE FUNCTION TO CREATE 'SHIFT_ITEMS' FOR EACH LOOP UNTIL IT STOPS
  86.  
  87.  
  88. $count++;
  89. }
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96. } else {
  97. // MULTI-DAY IS BROKEN INTO 2 SECTIONS
  98.  
  99. // SECTION 1)
  100. // DIFFERENCE BETWEEN CLOCK-IN TIME AND MIDNIGHT THAT NIGHT
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110. // SECTION 2)
  111. // DIFFERENCE BETWEEN MIDNIGHT AND CLOCK-OUT TIME
  112.  
  113.  
  114.  
  115.  
  116. } // END ELSE
Add Comment
Please, Sign In to add comment