Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP生成月日?_Php - Fatal编程技术网

如何使用PHP生成月日?

如何使用PHP生成月日?,php,Php,我正试图像这样生成当月的天数 $year = date('Y'); $month = date('m'); $dayCount = cal_days_in_month(CAL_GREGORIAN,$month,$year); for ($i = 1; $i <= $dayCount; $i++) { $tree_data->data[$i] = $year."-".$month."-".$i; } print

我正试图像这样生成当月的天数

    $year = date('Y');
    $month = date('m');

    $dayCount = cal_days_in_month(CAL_GREGORIAN,$month,$year);

    for ($i = 1; $i <= $dayCount; $i++)
    {
        $tree_data->data[$i] = $year."-".$month."-".$i;
    }
    print "<pre>";
    print_r($tree_data);
我的问题是我想得到像这样的1-9天

$year = date('Y');
$month = date('m');

$dayCount = cal_days_in_month(CAL_GREGORIAN,$month,$year);

for ($i = 1; $i <= $dayCount; $i++)
{
    $tree_data->data[$i] = $year."-".$month."-".(($i < 10)?'0'.$i:$i);
}
print "<pre>";
print_r($tree_data);
知道如何获得这样的输出吗?

$year=date('Y');
sprintf('%1$02d', $i);
$month=日期('m'); $dayCount=每月的计算天数(计算公历,$month,$year); 对于($i=1;$i数据[$i]=$year.-“$month.-”($i<10)?“0”。$i:$i); } 打印“”; 打印(树数据);
$year=日期('Y');
$month=日期('m');
$dayCount=每月的计算天数(计算公历,$month,$year);
对于($i=1;$i数据[$i]=$year.-“$month.-”($i<10)?“0”。$i:$i);
}
打印“”;
打印(树数据);
检查str_pad()

查看str_pad()


您可以使用
sprintf

$year = date('Y');
$month = date('m');

$dayCount = cal_days_in_month(CAL_GREGORIAN,$month,$year);

for ($i = 1; $i <= $dayCount; $i++)
{
    $tree_data->data[$i] = $year."-".$month."-".str_pad($i, 2, "0", STR_PAD_LEFT);
}
$ret = implode(", ", $tree_data->data);

另一种方法是使用
DateTime
对象:

    $startMonth = date('Y-m-01');
    $endMonth = date('Y-m-t');
    $i = 0;
    while(strtotime($startMonth) <= strtotime($endMonth)){
       $tree_date->date[$i] = $startMonth;
       $startMonth = date('Y-m-d', strtotime($startMonth.' +1 days'));
       $i++;
    }

   print_r($tree_date);
$aDates=array();
$oStart=新日期时间('2011-12-01');
$oEnd=克隆$oStart;
$oEnd->add(新日期间隔(“P1M”);
而($oStart->getTimestamp()<$oEnd->getTimestamp()){
$aDates[]=$oStart->format('Y-m-d');
$oStart->add(新日期间隔(“P1D”);
}

您可以使用
sprintf

$year = date('Y');
$month = date('m');

$dayCount = cal_days_in_month(CAL_GREGORIAN,$month,$year);

for ($i = 1; $i <= $dayCount; $i++)
{
    $tree_data->data[$i] = $year."-".$month."-".str_pad($i, 2, "0", STR_PAD_LEFT);
}
$ret = implode(", ", $tree_data->data);

另一种方法是使用
DateTime
对象:

    $startMonth = date('Y-m-01');
    $endMonth = date('Y-m-t');
    $i = 0;
    while(strtotime($startMonth) <= strtotime($endMonth)){
       $tree_date->date[$i] = $startMonth;
       $startMonth = date('Y-m-d', strtotime($startMonth.' +1 days'));
       $i++;
    }

   print_r($tree_date);
$aDates=array();
$oStart=新日期时间('2011-12-01');
$oEnd=克隆$oStart;
$oEnd->add(新日期间隔(“P1M”);
而($oStart->getTimestamp()<$oEnd->getTimestamp()){
$aDates[]=$oStart->format('Y-m-d');
$oStart->add(新日期间隔(“P1D”);
}

这应该足够了。:)

$year=日期('Y');
$month=日期('m');
$dayCount=每月的计算天数(计算公历,$month,$year);
对于($i=1;$i数据[$i]=$year.-“$month.-”.str_pad($i,2,“0”,str_pad_LEFT);
}
$ret=内爆(“,”,$tree\u data->data);

这应该足够了。:)

$year=日期('Y');
$month=日期('m');
$dayCount=每月的计算天数(计算公历,$month,$year);
对于($i=1;$i数据[$i]=$year.-“$month.-”.str_pad($i,2,“0”,str_pad_LEFT);
}
$ret=内爆(“,”,$tree\u data->data);

以及其他答案建议您可以有条件地在一天中添加
0
,或者这里有另一种方法来处理这些事情以防万一

$startMonth=日期('Y-m-01');
$endMonth=日期('Y-m-t');
$i=0;
而(strtime($startMonth)date[$i]=$startMonth;
$startMonth=日期($Y-m-d',标准时间($startMonth.+1天));
$i++;
}
打印日期($tree\u date);

以及其他答案建议您可以有条件地在一天中添加
0
,或者这里有另一种方法来处理这些事情以防万一

$startMonth=日期('Y-m-01');
$endMonth=日期('Y-m-t');
$i=0;
而(strtime($startMonth)date[$i]=$startMonth;
$startMonth=日期($Y-m-d',标准时间($startMonth.+1天));
$i++;
}
打印日期($tree\u date);

不确定三元。你不是在改造轮子吗?为什么不使用str_-pad?不确定三元。你不是在改造轮子吗?为什么不使用str_-pad?或者可能不使用$endMonth=date('Y-m-00',strotime('+1个月));你可以使用$endMonth=date('Y-m-t');或者可能不使用$endMonth=date('Y-m-00',strotime('+1个月'));您可以使用$endMonth=date('Y-m-t');编辑,这对我来说确实是个错误。编辑,这对我来说确实是个错误。
    $startMonth = date('Y-m-01');
    $endMonth = date('Y-m-t');
    $i = 0;
    while(strtotime($startMonth) <= strtotime($endMonth)){
       $tree_date->date[$i] = $startMonth;
       $startMonth = date('Y-m-d', strtotime($startMonth.' +1 days'));
       $i++;
    }

   print_r($tree_date);