doubo3384 2013-03-30 19:42
浏览 34
已采纳

如何从今天到过去的某个点获取一系列日期(特别是格式化)?

I would like to get an array containing strings like this: 2013-03, 2013-02, 2013-01, 2012-12, 2012-11... etc.

How would I go about it? I tried working with a loop and DateInterval class, but surprisingly 30.March -1month gives us 2.March, so that's not very useful.

$date = new DateTime();
$date->sub(DateInterval::createFromDateString('1 month'));

Thanks!

  • 写回答

1条回答 默认 最新

  • douyuan9512 2013-03-30 20:03
    关注

    Curiously, PHP returns the previous month of a date using the "next month" keyword :S

    You can do the following:

    <?php
    $date = new DateTime();
    // Subtract one month at a time
    // until we reach 2009.
    while ($date->format('Y') > 2009) {
        $date->sub(DateInterval::createFromDateString('next month'));
        var_dump($date->format('Y-m')); // Will print 2013-03 2013-02 [...]
    };
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 微信公众号如何开发网页
  • ¥15 h3.6m 人类行为预测论文复现
  • ¥50 wordpress项目注册报失败刷新后其实是成功状态,请求排查原因
  • ¥20 linxu服务器僵尸进程不释放,代码如何修改?
  • ¥15 pycharm激活不成功
  • ¥40 如果update 一个列名为参数的value
  • ¥15 基于51单片机的水位检测系统设计中LCD1602一直不显示
  • ¥15 OCS2安装出现问题,请大家给点意见
  • ¥15 ros小车启动launch文件报错
  • ¥15 vs2015到期想登陆但是登陆不上