想要检索给定月份的所有日期和日期。目前这个显示当月的所有日期,但我如何在指定的月份解析?
$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>";
答案 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)
$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-法国革命日历
答案 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);