我正在建立一个博客档案,我需要列出这些年的历史月份,到目前为止,例如,今天是8月22日,所以我的档案应该显示,
我不能为我的工作生活如何输出我们尚未拥有的一年中的所有月份。
答案 0 :(得分:3)
php date()
函数可用于显示当前月份:
您可以像这样获得当月:
echo date('n'); // Outputs 8 for August.
这也意味着你可以使用这样的简单循环:
for($i=1;$i<=date('n');$i++)
{
echo date('F', mktime(0, 0, 0, $i, 0, 0);
}
作为参考,date('F')
输出月份的全名,如8月。
编辑:mktime()
功能与用户时区绑定,您可能会错误的月份,因为您不在0:00时区(就像我一样)。正如您在这几个月之后,这是一个简单的解决方法:
<?php
for($i=date('n');$i>0;$i--)
{
echo date('F', mktime(0, 0, 0, ($i), 2, date('Y')))."<br>";
}
?>
我还修改了for循环,使其反向运行。
答案 1 :(得分:3)
您应该查看PHP的DateTime class。
<ul>
<?php
$dateTime = new DateTime();
do {
$dateTime->modify('+1 month');
echo '<li>' . $dateTime->format('F') . "</li>\n";
} while ($dateTime->format('m') < 12);
?>
</ul>
你的问题不是很清楚,但根据你的最新评论:
谢谢,但是这个列出了12月1月2月3月4月5月6月,我需要输出本年度的所有前几个月,包括当月;
你想要与我在这里所做的完全相反:
<ul>
<?php
$dateTime = new DateTime();
echo '<li>' . $dateTime->format('F') . "</li>\n";
$dateTime->modify('-1 month');
while ($dateTime->format('m') != 12) {
echo '<li>' . $dateTime->format('F') . "</li>\n";
$dateTime->modify('-1 month');
};
?>
</ul>
答案 2 :(得分:0)
PHP的date()
非常适合这种情况。
http://php.net/manual/en/function.date.php
$month = date('n'); // Get month, 1-12
答案 3 :(得分:0)
<?php
$month=date('m');
foreach(range(12,1) as $i)
{
if($i<=$month):
echo date('F',mktime(0,0,0,$i));
echo '<br>';
endif;
}?>