За последние 24 часа нас посетил 19381 программист и 1606 роботов. Сейчас ищут 804 программиста ...

for 1 раз за неделю

Тема в разделе "PHP для новичков", создана пользователем cocka, 27 авг 2009.

  1. cocka

    cocka Активный пользователь

    С нами с:
    29 мар 2009
    Сообщения:
    72
    Симпатии:
    0
    Код захотел укратить..в итоге должно показывать неделя с ...по... (для этого надо было только 3 цыфры менять, но я взял только две в цикле чтобы легче было)
    показывало

    PHP:
    1. <?
    2. //*nedelya s - po
    3. $data=strtotime($myrow["datum"]);//перевод даты
    4. $wochenanf=date(w,$data);//какой номер дня (воскресенье=1)
    5. if ($wochenanf=="1"){
    6.     $datas=date("d.m.Y",$data);
    7.     $datado=strtotime("+6 days",$data);
    8.     $datado=date("d.m.Y",$datado);
    9.     echo "<br><br><center style='color:blue'>Die Woche vom ".$datas." bis ".    $datado."</center>";}
    10. elseif ($wochenanf=="2"){
    11.     $datas=strtotime("-1 day",$data);
    12.     $datas=date("d.m.Y",$datas);
    13.     $datado1=strtotime("+5 days",$data);
    14.     $datado1=date("d.m.Y",$datado1);
    15.     if ($datado1 != $datado)
    16.     echo "<br><br><center style='color:blue'>Woche vom ".$datas." bis ".            $datado1."</center>";}
    17. elseif ($wochenanf=="3"){
    18.     $datas=strtotime("-2 day",$data);
    19.     $datas=date("d.m.Y",$datas);
    20.     $datado2=strtotime("+4 days",$data);
    21.     $datado2=date("d.m.Y",$datado2);
    22.     if ($datado2 != ($datado or $datado1))
    23.     echo "<br><br><center style='color:blue'>Woche vom ".$datas." bis ".        $datado2."</center>";}
    24. elseif ($wochenanf=="4"){
    25.     $datas=strtotime("-3 day",$data);
    26.     $datas=date("d.m.Y",$datas);
    27.     $datado3=strtotime("+3 days",$data);
    28.     $datado3=date("d.m.Y",$datado3);
    29.     if ($datado3 != ($datado2 or $datado or $datado1))
    30.     echo "<br><br><center style='color:blue'>Woche vom ".$datas." bis ".        $datado3."</center>";}
    31. elseif ($wochenanf=="4"){
    32.     $datas=strtotime("-3 day",$data);
    33.     $datas=date("d.m.Y",$datas);
    34.     $datado4=strtotime("+3 days",$data);
    35.     $datado4=date("d.m.Y",$datado4);
    36.     if ($datado4 != ($datado2 or $datado or $datado1 or $datado3))
    37.     echo "<br><br><center style='color:blue'>Woche vom ".$datas." bis ".        $datado4."</center>";}
    38. elseif ($wochenanf=="5"){
    39.     $datas=strtotime("-4 day",$data);
    40.     $datas=date("d.m.Y",$datas);
    41.     $datado5=strtotime("+2 days",$data);
    42.     $datado5=date("d.m.Y",$datado5);
    43.     if ($datado5 != ($datado2 or $datado or $datado1 or $datado3 or $datado4))
    44.     echo "<br><br><center style='color:blue'>Woche vom ".$datas." bis ".        $datado5."</center>";}
    45. elseif ($wochenanf=="6"){
    46.     $datas=strtotime("-5 day",$data);
    47.     $datas=date("d.m.Y",$datas);
    48.     $datado6=strtotime("+1 days",$data);
    49.     $datado6=date("d.m.Y",$datado6);
    50.     if ($datado6 != ($datado2 or $datado or $datado1 or $datado3 or $datado4 or         $datado5))
    51.     echo "<br><br><center style='color:blue'>Woche vom ".$datas." bis ".        $datado6."</center>";}
    52. elseif ($wochenanf=="0"){
    53.     $datas=strtotime("-6 day",$data);
    54.     $datas=date("d.m.Y",$datas);
    55.     $datado7=$data;
    56.     $datado7=date("d.m.Y",$datado7);
    57.     if ($datado7 != ($datado2 or $datado or $datado1 or $datado3 or $datado4 or             $datado5 or $datado6))
    58.     echo "<br><br><center style='color:blue'>Woche vom ".$datas." bis ".        $datado7."</center>";}
    59. ?>
    Сократил, но теперь на каждый день показывает... что сделать у меня логики не хватает. на помощь
    PHP:
    1. <?
    2. for($iwday=0, $iwdaydo=7;$wday<7, $iwdaydo>0;$iwday++, $iwdaydo--){
    3. if($wochenanf==$iwday){//если перечилснное в цикле равняется дню то выдать неделя с.. по...
    4.     $datas=date("d.m.Y",$data);//перевод даты в 00.00.0000
    5.     $datado=strtotime("+ ".$iwdaydo." days",$data);//вычисление последнего дня недели
    6.     $datado=date("d.m.Y",$datado);//перевод в  00.00.0000
    7.     echo "<br><br><center style='color:blue'>Die Woche vom ".$datas." bis ".    $datado."</center>";}}//выдача
    8. ?>
    но мне на каждый день не нужно.. нужно, чтобы поймало первый день, будь то понедельник или вторник и написало.. потом для следующей недели,
    я так понимаю.. просто надо, что-то вроде elseif использовать, но нельзя ведь с самого начала так делать
     
  2. cocka

    cocka Активный пользователь

    С нами с:
    29 мар 2009
    Сообщения:
    72
    Симпатии:
    0
    попробывал всунуть сперва иф и потом в цикл засунуть тольько элсиф, все равно не работает
    "Parse error: syntax error, unexpected T_ELSEIF in zgn.php on line 52"

    PHP:
    1. <?
    2. $data=strtotime($myrow["datum"]);
    3. $wochenanf=date(w,$data);
    4.  
    5. if ($wochenanf=="1"){
    6.     $datas=date("d.m.Y",$data);
    7.     $datado=strtotime("+6 days",$data);
    8.     $datado=date("d.m.Y",$datado);
    9.     echo "<br><br><center style='color:blue'>Die Woche vom ".$datas." bis ".    $datado."</center>";}
    10. for($iwday=1, $iwdaydo=6;$wday<7, $iwdaydo>0;$iwday++, $iwdaydo--){
    11. elseif($wochenanf==$iwday){//52 строка
    12.     $datas=date("d.m.Y",$data);
    13.     $datado=strtotime("+ ".$iwdaydo." days",$data);
    14.     $datado=date("d.m.Y",$datado);
    15.     echo "<br><br><center style='color:blue'>Die Woche vom ".$datas." bis ".    $datado."</center>";}}
    16. ?>
     
  3. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    set_time_limit(9.9E+33);
    for ($i = 0; $i; $i++) {
    function();
    sleep(3600*24*7);
    }



    echo date("d", strtotime("-".(date("N")-1)." days")), ' &mdash; ', date("d", strtotime("+".(7-date("N"))." days"));
     
  4. cocka

    cocka Активный пользователь

    С нами с:
    29 мар 2009
    Сообщения:
    72
    Симпатии:
    0
    я нуб еще.. ка ни сстараюсь не могу врубиться..
    не могли бы вы мне соединить с моим кодом?!
     
  5. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Или так:

    PHP:
    1. <?php
    2. $daynum = date('N');
    3. echo date("d", (($daynum == 1) ? time() : strtotime("last Monday"))), '&mdash;', date("d", ($daynum == 7) ? time() :  strtotime("next Sunday"));
     
  6. cocka

    cocka Активный пользователь

    С нами с:
    29 мар 2009
    Сообщения:
    72
    Симпатии:
    0
    вау спасибо.. респект крекер, столько новых идей..
    но я видимо забыл упомянуть..
    у меня этот пхп на повторе

    //*pe4at ili obi4nii wid
    while($myrow=mysql_fetch_array($resultz)){
    if(!empty($druck)){include('optional/zgnd.php');}
    else{include('optional/zgn.php');}}

    все равно на каждый день выдает 8)
     
  7. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    Kreker
    не издевайся над человеком. )