I noticed you change between $Status and $status in the if statement, should those be the same variable and is this just in the example or is it in your code as well? That might cause an issue. Other then that this might be a cleaner way to write, simply my preference though.
//build an array of allowed statuses
//we will check to see if status is in this array rather
//then a bunch of ||'s in the if. This makes the if static as well,
//we can manipulate this allowed_status array and not have to
//muck about with the if statement.
$allowed_status = array(1, 2, 3, 4, 5, 6);
//i put the && part in parenthesis so it's a little more clear in the code
if(($status === "00" && $e > $n) || in_array($status, $allowed_status){//...}
//I used the ==='s, with just =='s 0 and 00 would be seen as the same status.
//then we used the in_array function to check if the status was in our allowed
//status array.
If that isn't working for you, start putting echo statements in to find out why. I have had greater success with comparing dates when they are in the time stamp format, so try not running the date() function maybe. Echoing out what is going on will help in any case.
echo "going to check ".$status." with start :".$start_stamp." and end:".$end_stamp."<br/>";
if(($status === "00" && $e > $n) || in_array($status, $allowed_status){
echo "Identified record with Status ".$status." start: ".$start_stamp." end: "$end_stamp."<br/>";
}else{
echo "DID NOT Identify record with Status ".$status." start: ".$start_stamp." end: "$end_stamp."<br/>";
}
I made up a few of my own variables, but putting echo statements like that will show you the results of your logic, then you can start tweaking it to get it the way it should be.
-- edit --
Nog beat me while I was typing 🙁