Your code crashes in the following lines:
$february = strtotime('February');
echo date(DATE_ISO8601, $february);
which today, December 30, 2016 issues:
2016-03-01T00:00:00+0000
Hmmm ... why does PHP say that "February" is "2016-03-01"? Well, this is due to how PHP fills in the gaps in the missing information: in the absence of explicit absolute time values, PHP uses the current date and time values.
, 30 13:29 , :
strtotime('February'); // you asked for
strtotime('February 30, 2016 13:29:47 EST'); // PHP interprets as
// ^^^^^^^^^^^^^^^^^^^^^ filled in from current time
, . PHP ( , ) , , 30 = 29 + 1 = 1 . ( , - , 2017, PHP 30 = 28 + 2 = 2 , "2017-03-02T00: 00: 00 + 0000"!)
, , , PHP . , strtotime('February'); :
$year = date('Y');
$date_established = strtotime("$monthName 1, $year");
( . : PHP .)
: , "", . , strtotime, , , .