获取星期一星期二等

问题描述

| 如何在这两个日期之间的星期一/星期三/星期五回荡所有日期? 这就是我一直在与的工作:
    function get_days ( $s,$e )
{
    $r = array ();
    $s = strtotime ( $s . \' GMT\' );
    $e = strtotime ( $e . \' GMT\' );

    $day = gmdate ( \'l\',$s );

    do
    {
        $r[] = $day . \',\' . gmdate ( \'Y-m-d\',$s );

        $s += 86400 * 7;

    } while ( $s <= $e );

    return $r;
}

print_r ( get_days ( $start,$end ) );
    

解决方法

        尝试这个:
function getDates($start_date,$end_date,$days){

    // parse the $start_date and $end_date string values
    $stime=new DateTime($start_date);
    $etime=new DateTime($end_date);

    // make a copy so we can increment by day    
    $ctime = clone $stime;
    $results = array();
    while( $ctime <= $etime ){

        $dow=$ctime->format(\"w\");
        // assumes $days is array containing integers for Sun (0) - Sat (6)
        if( in_array($dow,$days) ){ 
            // make a copy to return in results
            $results[]=clone $ctime;
        }
        // incrememnt by 1 day
        //$ctime=date_add($ctime,date_interval_create_from_date_string(\'1 days\'));
        $ctime->modify(\"+1 days\");
    }

    return $results;
}

// get every Tues,Wed,Fri from now to End of June
getDates(\'2011-06-15\',\'2011-06-30\',array(2,3,5));
    ,        您应该能够使用
strtotime()
获得日子。它接受诸如“ 3”之类的参数,并且还将“ 4”解析为正确的时间戳。是的,您需要一个(或多个)循环。 这应该足以为您指明正确的方向。 好的,您在我写答案时更新了问题。您不能假设一天总有86400秒。 DST开始或结束时,您的假设将是错误的。     ,        
<?php

$start = \"1 Jan 2011\";
$end = \"20 Jan 2011\";

$dates = getDays($start,$end);

print_r($dates);

function getDays($start,$end)
{
    $t = new DateTime(\"$start 12:00\");
    $e = new DateTime($end .\" 12:00\");

    $out = array();
    for (; $t<=$e; $t->modify(\"+1 day\")) {
        $day = $t->format(\"D\");
        if (in_array($day,array(\'Mon\',\'Wed\',\'Fri\'))) {
            $out[] = $t->format(\'d M Y\');
        }
    }

    return $out;
}
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...