- var_dump: documentation ( source)
<?php
function getDates(DateTime $date) {
$day = $date->format('d');
if ($day == 20) {
$nextMonth = clone $date;
$nextMonth->modify('-1 day');
$nextMonth->modify('+1 month');
return [
'start' => $date,
'end' => $nextMonth,
];
} else if ($day == 19) {
$lastMonth = clone $date;
$lastMonth->modify('+1 day');
$lastMonth->modify('-1 month');
return [
'start' => $lastMonth,
'end' => $date,
];
} elseif ($day > 20) {
$start = new DateTime($date->format('Y-m-20 H:i:s'));
} else {
$start = new DateTime($date->format('Y-m-20 H:i:s'));
$start->modify('-1 month');
}
$end = clone $start;
$end->modify('+1 month');
$end->modify('-1 day');
return [
'start' => $start,
'end' => $end,
];
}
$date = new DateTime('2017-09-20');
var_dump(getDates($date));
$date = new DateTime('2017-09-19');
var_dump(getDates($date));
$date = new DateTime('2017-09-15');
var_dump(getDates($date));
$date = new DateTime('2017-08-23');
var_dump(getDates($date));