For the first run, I need to use dates that are six months prior to the last MySQL date $row_recent[0]. For all of the runs after 1, I am using a previous variable to store the previous date and then decrease the date by 6 months. I have confirmed that the first if test produces the expected result. (MySQL date - 6 Months). However, the second if test outputs $startdate6m as the PHP default due to $previous_6m being uninitialized. Any idea why it won't recognize $previous_6m = $initial6m?
<?php
while ($run_number < 15) {
$run_number++;
if($run_number == 1){
if ($month <= 06){
$year6m = date("Y", strtotime($row_recent[0]))-1;
$month6m = str_pad((12-(6-date("m", strtotime($row_recent[0])))), 2, "0", STR_PAD_LEFT);
$startdate6m = "'".$year6m."-".$month6m."-01'";
$end_date = $startdate6m;
$initial6m = $startdate6m;
} else{
$year6m = date("Y", strtotime($row_recent[0]));
$month6m = str_pad(date("m", strtotime($row_recent[0]))-6, 2, "0", STR_PAD_LEFT);
$startdate6m = "'".$year6m."-".$month6m."-01'";
$end_date = $startdate6m;
$initial6m = $startdate6m;
}
}
$previous_6m = $initial6m;
if($run_number > 1){
# 6 Month
# Decrement date by 6 months
$month6m = date("m", strtotime($previous_6m));
if ($month6m <= 06){
$year6m = date("Y", strtotime($previous_6m))-1;
$month6m = str_pad((12-(6-date("m", strtotime($previous_6m)))), 2, "0", STR_PAD_LEFT);
$startdate6m = "'".$year6m."-".$month6m."-01'";
$end_date = $startdate6m;
} else{
$year6m = date("Y", strtotime($previous_6m));
$month6m = str_pad(date("m", strtotime($previous_6m))-6, 2, "0", STR_PAD_LEFT);
$startdate6m = "'".$year6m."-".$month6m."-01'";
$end_date = $startdate6m;
}
}
$previous_6m = $startdate6m;
}
?>