星期三的日历,但1月失踪

时间:2017-01-01 16:58:50

标签: php calendar

我试着写一个星期三的日历,日历应该只在表格中显示星期三,它应该能够在日历中写一个会议

我试图改变:

strotime('-1 month')

但是它没有显示日历。

function getMittwoch($y, $m)
{
    return new DatePeriod(
        new DateTime("first wednesday of $y-$m"),
        DateInterval::createFromDateString('next wednesday'),
        new DateTime("last day of $y-$m")
    );
}

所以去年,它运作了,但现在没有。日历仅显示2月至12月,但1月份缺失。

for( $monat=date('m', strtotime('0 month'))+1; $monat<13; $monat++ ){
        foreach (getMittwoch(date('Y'), $monat) as $mittwoch) {
            $tagWert = $mittwoch->format("dmY");

2017年我应该改变什么?

3 个答案:

答案 0 :(得分:0)

我的脚本将在给定日期找到所有星期三:

function getWednesday($y,$m){
    $inmonth=date('t', mktime(0, 0, 0, $m, 1, $y)); ;

    for($i=0;$i<$inmonth;$i++){
        $d=$i+1;
        $timestamp = strtotime("$y-$m-$d");
        $day = date('w', $timestamp);
        if($day==3){
            echo "Wednesday found - $y-$m-$d<br>";
        }
    }
}

getWednesday(2017,1);

输出是:

Wednesday found - 2017-1-4
Wednesday found - 2017-1-11
Wednesday found - 2017-1-18
Wednesday found - 2017-1-25

当然,你可以用其他东西替换回声。 我希望它会对你有所帮助。

的Ondrej

答案 1 :(得分:0)

显示下个月周三的下一个变体:

function getWednesday($y,$m,$next=1){
    for ($x=0; $x < $next; $x++) {
            $inmonth=date('t', mktime(0, 0, 0, $m, 1, $y)); ;

            for($i=0;$i<$inmonth;$i++){
                $d=$i+1;
                $timestamp = strtotime("$y-$m-$d");
                $day = date('w', $timestamp);

                if($day==3){
                    echo "Wednesday found - $y-$m-$d<br>";
                }
            }

            if($m==12){
                $y++;
                $m=0;
            } 
    $m++;
    }
}

getWednesday($ Y,$ M,$下)

  • $ y - 从
  • 开始计算的年份
  • $ m - 开始的月份
  • $ next - 下一个$下个月展示(如果没有使用,显示一个月)

答案 2 :(得分:0)

抱歉,但我没有上场。我想将它实现到我的脚本中。 所以我的日历应该总是显示下一个六个月的下周三包括2018年。并且应该从当天开始。

&#13;
&#13;
    for( $monat=date('m', strtotime('month')); $monat<7; $monat++ ){
        foreach (getMittwoch(date('Y'), $monat) as $mittwoch) {
			
            $tagWert = $mittwoch->format("dmY");
            echo "<tr>";
            echo "<td>";
            echo "<input type=\"radio\" name=\"tag\" value=\"$tagWert\" />". $mittwoch->format("l, d.m.Y");
            echo "</td>";
            echo "<td>";
            echo getVeranstaltung($tagWert)['veranstaltung'];
            echo "</td>";
            echo "</tr>";
        }
    }
&#13;
&#13;
&#13;