首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未来12个月的动态日期选项

未来12个月的动态日期选项
EN

Stack Overflow用户
提问于 2011-11-28 07:09:23
回答 3查看 1.4K关注 0票数 2

我真的努力做到了以下几点:

代码语言:javascript
复制
<option value="2011-11"><? echo $month[11]?> '11</option>
<option value="2011-12"><? echo $month[12]?> '11</option>
<option value="2012-1"><? echo $month[1]?> '12</option>
<option value="2012-2"><? echo $month[2]?> '12</option>

其中,以下内容是根据今天的日期动态变化的:

代码语言:javascript
复制
<option value="YYYY-m"><? echo $month[12]?> 'yy</option>

并在今天之前的12个月内重复这个过程。

我在PHP的基础知识上取得了一些进步,我承认我需要比我更有知识的人的帮助!

它确实看起来很简单,我经常使用stackoverflow来解决问题,尽管这一次我花了太多的时间,但进展太少。

有人能帮我完成这个看似简单的挑战吗?

谢谢!

EN

回答 3

Stack Overflow用户

发布于 2012-03-30 01:37:15

为任何发现问题的人做评论。

公认的答案是错误的。请看这里:

http://www.php.net/manual/en/function.strtotime.php#107331

改用下面的代码:

代码语言:javascript
复制
<?php
for($i=0;$i<=12;$i++)
{
    $time = strtotime("first day of +". $i." months");
    print '<option value="'. date("Y-m", $time)  .'">'.date("Y-m",$time).'</option>';
}
?>

解决办法是“第一天”

票数 2
EN

Stack Overflow用户

发布于 2011-11-28 07:14:50

这段代码是概念的证明,它准确地实现了您想要的东西。

代码语言:javascript
复制
for($i=0;$i<=12;$i++)
{
    $time = strtotime("today + ". $i." months");

    print '<option value="'. date("Y-m", $time)  .'">'.date("Y-m",$time).'</option>';
}

如果希望以特定语言打印月份名称,则应该查看setlocale,只需使用date中的F参数即可

票数 1
EN

Stack Overflow用户

发布于 2011-11-28 07:16:00

这就是了:

代码语言:javascript
复制
$time = time();

foreach (range(0, 12) as $i)
{
    echo '<option value="' . date('Y-m', $time) . '">' . $month[date('m', $time)] . date('y', $time) . '</option>' . "\n";

    if ($i >= 1)
    {
        $time = strtotime('next month', $time);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8289856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档