PHP如何从Unix时间戳中提取一个月的第一天

There is this Unix timestamp and it needs to generate the first days of the week as an array.

    $time = '1456034400'; 
    // This present Month February 2016
    // in calendar the February has the start of the week 
    // Sunday 7
    // Sunday 14
    // Sunday 21
    // Sunday 28

How do you get an array like this from the Unix Timestamp:

    $weekdays = array(
                  0 => 7,
                  1 => 14,
                  2 => 21,
                  3 => 28
                 );

And this method needs to work and be accurate for any given month in years not just Feb 2016.

function getSundays($y, $m)
{
    return new DatePeriod(
        new DateTime("first Sunday of $y-$m"),
        DateInterval::createFromDateString('next sunday'),
        new DateTime("last day of $y-$m")
    );
}


$days="";
foreach (getSundays(2016, 04) as $Sunday) {
    $days[] = $Sunday->format("d");
}

var_dump($days);

https://3v4l.org/DVYM5

A bit faster way (since it uses a simple calculation to iterate weeks):

$time = 1456034400;

$firstDay = strtotime('first Sunday of '.date('M',$time).' '.date('Y',$time));
$lastDay =  mktime(0,0,0,date('m',$time)+1,1,date('Y', $time));

$weekdays = array();

for ($i = $firstDay; $i < $lastDay; $i += 7*24*3600){
    $weekdays[] = date('d',$i);
}

https://3v4l.org/lQkB2/perf#tabs