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', ...

React Js Commands

React JS Commands and Useful purposes  To Install react app: npx create-react-app app-name To Install react app: npx create-react-app . To check npm version: npm --version Inside that directory, you can run several commands:   npm start     Starts the development server.   npm run build     Bundles the app into static files for production.   npm test     Starts the test runner.   npm run eject     Removes this tool and copies build dependencies, configuration files     and scripts into the app directory. If you do this, you can’t go back! node -v (To check node version) The latest recommended command to create a new React app is: npx create-react-app@latest my-app Replace my-app with your desired project name. This approach uses the latest version of Create React App and works if Node.js (version 14+) and npm (version 5.2+) are installed Modern Alternatives If you prefer a faster, lighter setup, many developers n...

Reactjs jsx

ReactJS JSX   React is a modular, scalable, flexible, and popular front-end framework. What is JSX? JSX is a syntax extension for JavaScript. It was written to be used with React. JSX code looks a lot like HTML. What does “syntax extension” mean? In this case, it means that JSX is not valid JavaScript. Web browsers can’t read it! If a JavaScript file contains JSX code, then that file will have to be compiled. This means that before the file reaches a web browser, a JSX compiler will translate any JSX into regular JavaScript. Codecademy’s servers already have a JSX compiler installed, so you don’t have to worry about that for now. Eventually we’ll walk through how to set up a JSX compiler on your personal computer. JSX is a syntax extension for JavaScript which allows us to treat HTML as expressions. const h1 = <h1>Hello world</h1>; They can be stored in variables, objects, arrays, and more! Here’s an example of several JSX elements being stored in an object: const ...