【问题标题】:php date list for specified duration指定持续时间的php日期列表
【发布时间】:2011-01-31 15:49:55
【问题描述】:

是否有任何 php 类或函数可以为我们提供特定持续时间的所有天数?例如,如果我想要从 25/03/2010(2010 年 3 月 25 日)到 15/05/2010(2010 年 5 月 15 日)的日期列表,它将给我:

25/03/2010 26/03/2010 26/03/2010 …… …… …… 2010 年 14 月 5 日 15/05/2010

非常感谢您的帮助!

【问题讨论】:

    标签: php date duration


    【解决方案1】:
    $day1 = strtotime ('25/03/2010');
    $day2 = strtotime ('15/05/2010');
    
    $oneday = 60 * 60 * 24;
    
    for ($day = $day1; $day <= $day2; $day + $oneday)
    {
        echo date ('Y-m-d', $day);
    }
    

    应该这样做。

    【讨论】:

    • 我会使用“2010 年 3 月 25 日”和“2010 年 5 月 15 日”来避免欧洲/美国日期格式问题
    • 我想用棍子打败尽管中端日期是个好主意的人:D
    • 非常感谢代码 DCD.. 将很快尝试。我同意你打败任何认为中端日期是个好主意的人;)
    • hmmm DCD 我尝试了代码,但它返回 1970-01-011970-01-011970-01-011970-01-011970-01-011970-01-011970-01-011970-01-011970 -01-011970-01-011970-01-011970-01-011970-01-011970-01-011970-01-01197....... ...它几乎让我的 Firefox 挂了...
    【解决方案2】:

    在 php5.3 中使用新的DatePeriod 对象很容易:

    $begin = new DateTime( '2010-03-25' );
    $end = new DateTime( '2010-05-15 23:59:59' );
    
    $period = new DatePeriod($begin, new DateInterval('P1D'), $end);
    
    foreach ( $period as $dt )
      echo $dt->format( "Y-m-d\n " );
    

    【讨论】:

    • 我的虚拟主机 php 只是 php 5.2.x.... 无论如何非常感谢代码.. 以后肯定会让我受益
    猜你喜欢
    • 2018-05-24
    • 2020-02-11
    • 1970-01-01
    • 2016-12-31
    • 1970-01-01
    • 2015-07-10
    • 1970-01-01
    • 2012-01-09
    • 1970-01-01
    相关资源
    最近更新 更多