0

I want to determine if $today is a known non-working day or holiday by comparing two arrays and report the result. I do not know what belongs in the if and elseif structures to compare if the variable within the array is a match to $today:

<?php
// Date & Time
$timeadjust = '-5 hours';
$today_long = date('l, d F Y', strtotime($timeadjust));
$today = date('m-d', strtotime($timeadjust));
$today_day_name = date('l', strtotime($timeadjust));
// Normal Non-Working Days
$saturday = 'Saturday';
$sunday = 'Sunday';
// 2015 Holidays
$new_years_day = '01-01';
$fourth_of_july = '07-04';
$thanksgiving = '11-26';
$thanksgiving_friday = '11-27';
$christmas_eve = '12-24';
$christmas = '12-25';
$new_years_eve = '12-31';
// Normal Non-Working Day Array
$no_work = array($saturday,$sunday);
// Holiday Array
$holiday = array($new_years_day,$fourth_of_july,$thanksgiving,$thanksgiving_friday,$christmas_eve,$christmas,$new_years_eve);
// Compare Today To Normal Non-Working Day & Holiday Arrays To Determine If Today Is Normal Non-Working Day Or Holiday
if ($today_day_name = $no_work) {$operating = 'CLOSED';}
elseif ($today = $holiday) {$operating = 'CLOSED';}
else {$operating = 'OPEN';}
// Display Result Of Comparison & Report Operating Status
echo '<h3>Today is&nbsp;'.$today_long.'.&nbsp;We are&nbsp;'.$operating.'&nbsp;today!</h3>';
?>
1
  • You want to take a look at in_array() for this Commented Jan 7, 2015 at 21:14

1 Answer 1

1

For what you're doing you can use in_array() which will test if the value is in a selected array -

// Compare Today To Normal Non-Working Day & Holiday Arrays To Determine If Today Is Normal Non-Working Day Or Holiday
if (in_array($today_day_name, $no_work)) {
    $operating = 'CLOSED';
} elseif (in_array($today, $holiday)) {
    $operating = 'CLOSED';
} else {
    $operating = 'OPEN';
}

EXAMPLE

In your original code you're also assigning instead of testing -

if($foo = $bar) // one equals sign assigns
if($foo == $bar) // two equals signs compares
if($foo === $bar) // three equals signs tests for equivalency, does it match value and type?

Because you were assigning your if statement would always evaluate to true.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.