Skip to main content

How to check business hour, non-business hour, weekend and holiday using PHP?

At times, you may have faced problem in finding the solution where you have date&time as input and should check whether the date falls on Weekend, Holiday or Weekday & the time is between Business hours or Non-business hours.

Here is a code snippet to find the input(i.e date and time) comes under Holiday, Weekend, Business Hours and Non-Business Hours.

<?php
 # Getting Workday Type
 # Suppose I consider the date with time 2018-12-25 19:28:00
 # You need to find out this date&time among the list of the Business hour, Non-business hour, Weekends, And Holidays
 # Holidays list & Weekdays are in Array
 # Consider Business works 9:00 AM to 6:00PM

 $holidays = ['01-01-2018','25-12-2018','10-07-2019','15-08-2019'];
 $weekdays = [0,1,2,3,4,5,6]; //['mon','tue','wed','thu','fri']
 $input_date = '2018-12-25 19:28:00'; //'YYYY-MM-DD h:i:s'
 $business_start_time = "09:00"; 
 $business_end_time = "18:00"; 
 $type = "";

 #1st check Holiday or not
 $dt = new DateTime($input_date);
 $date = $dt->format('d-m-Y');
 if(in_array($date,$holidays))
 {
  $type = "Holiday";
 }


 #2nd Check week end or not
 $wk_no = date("w", strtotime($input_date)); //["0"=>"sun","1"=>"mon"....."6"=>"sat"]
 if(($wk_no == 0 || $wk_no == 6) && $type != "Holiday" && !in_array($wk_no,$weekdays))
 {
  $type = "Weekend";
 }

 #3rd Check work day even weekend also working day or not
 if(in_array($wk_no,$weekdays) && $type != "Weekend" && $type != "Holiday")
 {
  $type = "Working day";
 }

 #4th Condition check Business hour or non-business hour
 $begin = date("H:i", strtotime($business_start_time)); // gives 24 format
 $end = date("H:i", strtotime($business_end_time));
 $now = date("H:i", strtotime($input_date));
 if (($now >= $begin && $now <= $end) && $type == "Working day")
 {
  $type = "business hour";
 }
 else if($type == "Weekend")
 {
  $type = "Weekend";
 }
 else if($type == "Holiday")
 {
  $type = "Holiday";
 }
 else 
 {
  $type = "Non-business hour";
 }

 echo $type."
";
 ?>
 
 //OUTPUT: Holiday

Comments

Popular posts from this blog

Laravel form validations

 Laravel Validations: List of types "first_name" => 'required|alpha:ascii|min:3|max:100',// alpha:ascii (only accepts a-z) "middle_name" => 'string', "last_name" => 'required|string', "email" => 'required|email|unique:users,email', "password" => 'required|string|confirmed', "sex" => 'required|string', "phone_no" => 'required|string', "account_type" => 'required|string', "dob" => 'required|date_format:d-m-Y', // date with format "nationality" => 'required|string', "company" => 'required|string', "company_sector" => 'required|string', "company_address" => 'required|string' "bank_account_no" => 'required|min_digits:3|max_digits:5', "role" => 'required|in:admin,editor,viewer', ...

Laravel Commands

Laravale commands #Check route list php artisan route:list #Check upload files links php artisan storage:link #Check database connected or not php artisan db #Make Request file php artisan make:request YourNameRequest #Make Controller #(In this statement you used -r -> resources and -m -> model. It will create CustomersController and Customers Model files) php artisan make:controller CustomersController -r -m Customers #Make Resource file php artisan make:resource CustomersResource #To check migration files status that those files are running or not with below commands php artisan migrate:status #To check if there is any pending migrate files to run #(also this command shows us the mysql query before running migration file) php artisan migrate --pretend #To make a database table (in this example Products name as taken) php artisan make:migration create_products_table #To create a Request file php artisan make:request StoreProductRequest php artisan make:request Up...

What is AngularJS?

AngularJs is nothing but an MVC style javascript framework for creating single page apps. It is a javascript framework or we can say  "A framework will build client applications in HTML, CSS and Javascript/Typescript" This should be added within HTML  <script> tag. <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.2/angular.min.js"></script> Angular Js mainly used to make a single page, data-driven application. As well as we can add additional content brought into the web page without the need to refresh. Before going to AngularJS, We should know the     HTML     CSS     JavaScript     Json (optional)  Benefits of using angular Js     Gives our applications a clean structure     Includes a lot of re-usable code     Makes our applications more testable      Using Angular makes your life easier!   Let's Start learning with ...