[{"data":1,"prerenderedAt":6},["ShallowReactive",2],{"\u002F2016\u002F12\u002Fcalculate-business-hours-using-carbon-php-in-laravel":3},{"html":4,"toc":5},"\u003Cp>I have recently come across a situation where in I had to calculate the business hours between two datetime's. I started writing a helper function in Laravel which takes in two Carbon instances as arguments and returns the work hours considering 0800 - 1700 as work hours, Weekends are holidays and also takes in holiday dates which will be considered and not counted.\u003C\u002Fp>\n\u003Cp>This post helps only to those who have basic idea of Laravel. If you want me to elaborate I would be glad to but I need someone to ask me for it. As the blog is left out with 0 comments, I want you to talk and ask me for it.\u003C\u002Fp>\n\u003Cp>The function\u003C\u002Fp>\n\u003Cpre class=\"shiki github-light\" style=\"background-color:#fff;color:#24292e\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">&lt;?\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">php\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> use\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> Carbon\\Carbon\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">; \u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">function\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\"> getDiffHours\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">($from,$to) \u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">{ \u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">if\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">!\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">isset\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">($to)) \u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">{ \u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">$to \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> Carbon\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">::\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">now\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(\u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">'UTC'\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">);\u003C\u002Fspan>\u003Cspan style=\"color:#6A737D\">\u002F\u002FLiteraly useless but just in case \u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">} \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">if\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">($to\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">hour \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">&lt;\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 8\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">) \u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">{ $to\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">addDays\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">1\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\t$to\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">hour \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 17\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\t$to\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">minute \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 0\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\t$to\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">second \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 0\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t}\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">\tif\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">($to\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">hour \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">&gt;=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 17\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t{\t\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\t$to\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">hour \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 17\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\t$to\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">minute \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 0\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\t$to\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">second \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 0\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t}\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">\tif\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">($from\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">hour \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">&gt;=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 17\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t{\t\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\t$from\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">addDays\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">1\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\t$from\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">hour \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 8\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\t$from\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">minute \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 0\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\t$from\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">second \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 0\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t}\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">\tif\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">($from\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">hour \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">&lt;\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 8\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">) { $from\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">hour \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 8\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\t$from\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">minute \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 0\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\t$from\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">second \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 0\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t}\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">\tif\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">($from\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">gt\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">($to))\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">\t\treturn\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 0\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t$holidays \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 0\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">; \u003C\u002Fspan>\u003Cspan style=\"color:#6A737D\">\u002F\u002FFuture Scope\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t$diffDays \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> $to\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">diffInDaysFiltered\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">function\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">($date){ \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">return\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> !\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">checkHoliday\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">($date); }, $from)\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">1\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t$weekends \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> $to\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">diffInDaysFiltered\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">function\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">($date){ \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">return\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\"> checkHoliday\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">($date); }, $from);\u003C\u002Fspan>\u003Cspan style=\"color:#6A737D\">\u002F\u002FWeekends or holidays\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t$finalDiff \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> $diffDays \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">*\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 9\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t$from\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">addDays\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">($diffDays\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">+\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">$weekends);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t$diffHours \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> $to\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">diffInHoursFiltered\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">function\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">($date) { \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">if\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">($date\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">hour \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 8\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> &amp;&amp;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> $date\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">hour \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">&lt;\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 17\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">) \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">return\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> true\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">; \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">else\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> return\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> false\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">; },$from)\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">1\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t$finalDiff \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">+=\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> $diffHours;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t$from\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">addHours\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">($diffHours);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">\tif\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">($from\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">hour \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">&gt;=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 17\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> ||\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> ($from\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">day \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">&lt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> $to\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">day \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">&amp;&amp;\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> !\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">checkHoliday\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">($to)))\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t{\t\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\t$from\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">subHours\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">($diffHours);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\t$thatDay \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> clone\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> $from;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\t$thatDay\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">hour \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 17\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">; $thatDay\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">minute \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 0\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">; $thatDay\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">second\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">0\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\t$prevMinutes \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> $from\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">diffInMinutes\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">($thatDay);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\t$toAddMinutes \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> ($diffHours \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">*\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 60\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">)\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">$prevMinutes;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\t\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\t$from\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">addDays\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">1\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">\t\twhile\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">(\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">checkHoliday\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">($from))\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\t\t$from\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">addDay\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">();\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\t$from\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">hour \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 8\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\t$from\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">minute \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 0\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\t$from\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">second \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 0\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\t$from\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">addMinutes\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">($toAddMinutes);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t}\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t$diffMinutes \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> $to\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">-&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\">diffInMinutes\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">($from);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t$finalDiff \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">+=\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> $diffMinutes \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">\u002F\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 60\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">\tif\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">($finalDiff\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">&lt;\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">0\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">) { $finalDiff \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">=\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\"> 0\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">; \u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\">return\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> $finalDiff; } \u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">function\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1\"> checkHoliday\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">($date) { \u003C\u002Fspan>\u003Cspan style=\"color:#6A737D\">\u002F\u002Fprint_r($date); \u002F\u002Fdd(config('holidays.'.$date-&gt;year.'.'.$date-&gt;month)); if($date-&gt;isWeekend() || in_array($date-&gt;day,config('holidays.'.$date-&gt;year.'.'.$date-&gt;month))) return true; else return false; }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The structure of the config file.\u003C\u002Fp>\n\u003Cpre class=\"shiki github-light\" style=\"background-color:#fff;color:#24292e\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49\">&lt;?\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">php\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> return\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> [ \u003C\u002Fspan>\u003Cspan style=\"color:#032F62\">'2016'\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> =&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> [\t\t\t\t\t \u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#032F62\">\t\t'1'\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> =&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> [\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">1\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">18\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">],\t\t\t \u003C\u002Fspan>\u003Cspan style=\"color:#6A737D\">\u002F\u002FMonth Based dates\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#032F62\">\t\t'2'\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> =&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> [\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">15\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">],\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#032F62\">\t\t'3'\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> =&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> [],\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#032F62\">\t\t'4'\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> =&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> [],\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#032F62\">\t\t'5'\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> =&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> [\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">30\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">],\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#032F62\">\t\t'6'\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> =&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> [],\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#032F62\">\t\t'7'\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> =&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> [\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">4\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">],\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#032F62\">\t\t'8'\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> =&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> [],\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#032F62\">\t\t'9'\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> =&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> [\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">5\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">],\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#032F62\">\t\t'10'\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> =&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> [],\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#032F62\">\t\t'11'\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> =&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> [\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">11\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">24\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">,\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">25\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">],\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#032F62\">\t\t'12'\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49\"> =&gt;\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\"> [\u003C\u002Fspan>\u003Cspan style=\"color:#005CC5\">26\u003C\u002Fspan>\u003Cspan style=\"color:#24292E\">],\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E\">\t],\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Do remember that in PHP if you send the instances of Carbon as your arguments then you will not be able to use those instances again as their reference is sent. Use clone keyword while calling the function.\u003C\u002Fp>\n\u003Cp>Hope that helped.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Update 4th January, 2017:\u003C\u002Fstrong> Fixed a minor bug.\u003C\u002Fp>\n",[],1791316328044]