- time: documentation ( source)
<?php
$epoch = "1394031420";
$newepoch = time();
$dt = new DateTime("@$epoch"); // convert UNIX timestamp to PHP DateTime
$newdt = new DateTime("@$newepoch"); // convert UNIX timestamp to PHP DateTime
$start = new DateTime("@$epoch");
$start->modify('first day of this month');
$end = new DateTime("@$newepoch");
$end->modify('first day of next month');
$interval = DateInterval::createFromDateString('1 month');
$period = new DatePeriod($start, $interval, $end);
foreach ($period as $dt) {
echo $dt->format("Y-m-d") . PHP_EOL;
}