获取给定月份的所有日期和日期

时间:2014-05-21 10:17:07

标签: php arrays date

想要检索给定月份的所有日期和日期。目前这个显示当月的所有日期,但我如何在指定的月份解析?

$list=array();
for($d=1; $d<=31; $d++)
{
    $time=mktime(12, 0, 0, date('m'), $d, date('Y'));
    if (date('m', $time)==date('m'))
        $list[]=date('Y-m-d-D', $time);
}
echo "<pre>";
print_r($list);
echo "</pre>";

9 个答案:

答案 0 :(得分:16)

试试这个

$list=array();
$month = 12;
$year = 2014;

for($d=1; $d<=31; $d++)
{
    $time=mktime(12, 0, 0, $month, $d, $year);          
    if (date('m', $time)==$month)       
        $list[]=date('Y-m-d-D', $time);
}
echo "<pre>";
print_r($list);
echo "</pre>";

答案 1 :(得分:9)

试试这个

$month = "05";
$year = "2014";

$start_date = "01-".$month."-".$year;
$start_time = strtotime($start_date);

$end_time = strtotime("+1 month", $start_time);

for($i=$start_time; $i<$end_time; $i+=86400)
{
   $list[] = date('Y-m-d-D', $i);
}

print_r($list);

请参阅Demo

答案 2 :(得分:2)

面向对象的用户,

function getDaysInYearMonth (int $year, int $month, string $format){
  $date = DateTime::createFromFormat("Y-n", "$year-$month");

    $datesArray = array();
    for($i=1; $i<=$date->format("t"); $i++){
        $datesArray[] = DateTime::createFromFormat("Y-n-d", "$year-$month-$i")->format($format);
    }

 return $datesArray;
}

答案 3 :(得分:0)

利用relative formats

$y_m = '2018-10'; // set year and month.

$list = array();
$d = date('d', strtotime('last day of this month', strtotime($y_m))); // get max date of current month: 28, 29, 30 or 31.

for ($i = 1; $i <= $d; $i++) {
    $list[] = $y_m . '-' . str_pad($i, 2, '0', STR_PAD_LEFT);
}

echo '<pre>';
print_r($list);
echo '</pre>';

答案 4 :(得分:0)

$days = cal_days_in_month( 0, $month, $year);

cal_days_in_month:返回给定年份和日历的月份中的天数。
第一个参数是“ calendar”:

0或CAL_GREGORIAN-公历
1或CAL_JULIAN-朱利安日历
2或CAL_JEWISH-犹太日历
3或CAL_FRENCH-法国革命日历

http://php.net/manual/en/function.cal-days-in-month.php

http://php.net/manual/en/function.cal-info.php

答案 5 :(得分:0)

$list=array();
$d = 13;
$year = 2019;

for($m=1; $m<=12; $m++)
{
    $time=mktime(12, 0, 0, $m, $d, $year);          
    if (date('m', $time)==$m)       
        $list[]=date('D-d-m-Y', $time);
    }

在此数字中,您可以输入一个特殊的数字,并在一年中的所有天数相同的输出。例如,我想在一个月的所有第13天支出。 (如果您想在每个星期五13号找到需要使用的内容)

答案 6 :(得分:0)

我很惊讶没有人提到PHP的内置功能,没有额外的扩展DateTime类。

<?php
$daysInAugust2020 = (new DateTime("20200801"))->format('t');
print_r($daysInAugust2020);

您必须在您的YYYYMM字符串后附加一天,但这并不困难:每个月都有第一天。因此,您随时可以添加01

这里的窍门是t格式,它只返回日期所在月份的天数。如果您试图获取本月的天数,则更加简单。只需运行date()函数即可将DateTime设置为现在,因此上面的代码变为:

<?php
$daysInAugust2020 = date('t');
print_r($daysInAugust2020);

答案 7 :(得分:-1)

$c_year = date("Y");
$c_month = date("m");
$no_day = cal_days_in_month(CAL_GREGORIAN, $c_month, $c_year);           
for($i=1; $i<=$no_day; $i++){ 
     $cd[] .= $c_year.'-'.$c_month.'-'.$i;
}
$date_val = json_encode($cd) 
print_r($date_val); // date array

答案 8 :(得分:-2)

您可以使用$list[]=date('Y-M-D', $time);

Reference