我如何从给定日期获得所有下一个日期,这是基于每周,每两周,每月在PHP?

时间:2013-10-03 05:53:14

标签: php

我希望所有下一个日期与指定日期的日期相同,以便在cron作业文件中发送邮件。 现在我通过这样的计算来检查它的周是否

$event_from_date    =   strtotime(date('Y-m-d',strtotime($rs->from_date)));
    $today_date     =   strtotime(date('Y-m-d'));

    $event_expire_on    =   strtotime($rs->to_date);
    if($rs->time_zone   ==  "CST")
        $current_date=strtotime($cst_date);
    elseif($rs->time_zone   ==  "PST")
        $current_date=strtotime($pst_date);
    elseif($rs->time_zone   ==  "MST")
        $current_date=strtotime($est_date);
    elseif($rs->time_zone   ==  "EST")
        $current_date=strtotime($mst_date);

if($current_date <= $event_expire_on && $current_date >= $event_from_date)
{
    $diff=$today_date-$event_from_date;
    if($diff%604800 ==  0 && $rs->report_cycle=="Weekly")  
        $flag   =   1;
    else
        $flag   =   0;
} 

任何人都可以告诉我。如何每周接下来7天,每两周15天,每月30天,如周一,周二等。

1 个答案:

答案 0 :(得分:0)

我不是百分百肯定我理解你的问题。 DateTime classes提供了以各种方式操纵日期和时间的简单方法。

我认为,在你的位置上,我会寻找DatePeriods代表我需要的各个时期。这样的功能可能适合: -

/**
 * @param Int $days
 * @return DatePeriod
 */
function getNumDays($days)
{
    $today = new \DateTime('UTC');
    $oneDay = new \DateInterval('P1D');

    return new \DatePeriod($today, $oneDay, $days);
}

foreach(getNumDays(7) as $day){
    //Do what ever you want with the DateTime instance
    //We'll just var_dump() it for now.
    var_dump($day);
}

See it working