Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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_Arrays_Date - Fatal编程技术网

在PHP中获取从当前月份到年底的月份名称

在PHP中获取从当前月份到年底的月份名称,php,arrays,date,Php,Arrays,Date,我已经从我的数据库中获取了一个当前月份,它基本上是用户的加入日期。假设这个月加入了使用,现在是五月。我获取月份名称的代码如下所示: $months = array(); array_push($months,date("F",strtotime($me['joinTime']))); 在本例中,我将开始月份添加到数组中,在本例中是May。。。现在我想做的是,随着月份的推移,我想将每个新的月份添加到数组中。。例如,几天后是六月,当六月开始的时候,我会把这个月也添加到数组中。。因此,我的问题是,如

我已经从我的数据库中获取了一个当前月份,它基本上是用户的加入日期。假设这个月加入了使用,现在是五月。我获取月份名称的代码如下所示:

$months = array();
array_push($months,date("F",strtotime($me['joinTime'])));
在本例中,我将开始月份添加到数组中,在本例中是May。。。现在我想做的是,随着月份的推移,我想将每个新的月份添加到数组中。。例如,几天后是六月,当六月开始的时候,我会把这个月也添加到数组中。。因此,我的问题是,如何从5月的开始日期开始获取其余月份的名称

我需要六月,七月,八月,九月,十月,十一月,十二月

如果开始月份是四月,我也会把五月加入数组


有人能帮我解决这个问题吗?

首先你需要得到月数,然后你需要使用一个循环直到年底,即12。对于每个月号,您还需要月名,因此请使用DateTime createFromFormat


首先你们需要得到月数,然后你们需要使用一个循环直到年底,也就是12。对于每个月号,您还需要月名,因此请使用DateTime createFromFormat


你也可以这样说

$array = array();
array_push($array, date('F')) ;
for ($i=1; $i<=  12 - date('m'); $i++ ){
    array_push($array, date('F', strtotime("+$i months"))) ;
}
print "<pre>";print_r($array);

你也可以这样说

$array = array();
array_push($array, date('F')) ;
for ($i=1; $i<=  12 - date('m'); $i++ ){
    array_push($array, date('F', strtotime("+$i months"))) ;
}
print "<pre>";print_r($array);

这里我们将使用DatePeriod,它允许在一组日期和时间上进行迭代,在给定的时间段内定期重复

我们得到了结束日期和开始日期,然后计算了时间间隔。然后在这段时间内循环,我们得到了月的数组


这里我们将使用DatePeriod,它允许在一组日期和时间上进行迭代,在给定的时间段内定期重复

我们得到了结束日期和开始日期,然后计算了时间间隔。然后在这段时间内循环,我们得到了月的数组


你需要把去年的最后一个月定下来。是的,但我怎么做呢。。你能给我一个答案吗?如果有效的话,我可以接受。你的答案已经准备好了。你还没有接受这个,尽管它对你有效:是的,你需要在得到帮助后接受答案,否则我们很长时间都不能为你服务。你需要确定一个上个月和一年的时间。是的,但我怎么做呢。。你能回答一个答案,这样我就可以接受它,如果它工作了吗?你的答案已经准备好了。你还没有接受这个,虽然它对你有用:是的,你需要在得到帮助后接受答案,否则我们将无法为你提供很长时间。嘿,谢谢它的工作,只是对代码进行了一点修改:date\u create\u from\u format'!m',$i;DateTime::createFromFormat由于某种原因向我抛出一个错误。。。我在这里写评论的方式很好尝试使用此\DateTime::createFromFormat'!m',$i;,使用前面的'before the DateTime'。嘿,谢谢它能工作,只是对代码做了一点修改:date\u create\u from\u format'!m',$i;DateTime::createFromFormat由于某种原因向我抛出一个错误。。。我在这里写评论的方式很好尝试使用此\DateTime::createFromFormat'!m',$i;,使用前面的“日期时间之前”。
// current date : 20 Feb 2019

$startDate = new \DateTime('first day of next month');
$endDate = new \DateTime('1st january next year');

$interval = new \DateInterval('P1M');

$period = new \DatePeriod($startDate, $interval, $endDate);

// Start array with current date
$dates = [];

// Add all remaining dates to array
foreach ($period as $date) {
     array_push($dates, $date->Format('F'));
}

// output
print_r($dates); die;

Array ( [0] => March [1] => April [2] => May [3] => June [4] => July [5] => August [6] => September [7] => October [8] => November [9] => December )