2015-08-27 2 views
2

Я написал небольшой скрипт и не понимаю, почему он не работает. Я хочу отображать все календарные недели (обычно 52 недели в год) в раскрывающемся списке! Я не нашел подобного сценария в Интернете, поэтому я попробовал это сам. Может ли кто-нибудь сказать мне, что я сделал неправильно?Семинары по случаю неакадемии в Dropdown-Box

Я вижу только пустой раскрывающийся список! Было бы здорово, если бы кто-то мог мне помочь. Мне потребовалось некоторое время, чтобы написать эту часть кода.

EDIT:

Мои функции:

<?php 
function weekDayToTime($week, $year, $dayOfWeek = 1) { 
    //dayOfWeek: 0=sunday, 1=monday, ..., 6=saturday 
    $dayOfWeekRef = date("w", mktime (0,0,0,1,4,$year)); 
    if ($dayOfWeekRef == 0) $dayOfWeekRef = 7; 
    $resultTime = mktime(0,0,0,1,4,$year) + ((($week - 1) * 7 + ($dayOfWeek - $dayOfWeekRef)) * 86400); 
    $resultTime = cleanTime($resultTime); //Cleaning daylight saving time hours 
    return $resultTime; 
}; 

function cleanTime($time) { 
    //This function strips all hours, minutes and seconds from time. 
    //For example useful of cleaning up DST hours from time 
    $cleanTime = mktime(0,0,0,date("m", $time),date("d", $time),date("Y", $time)); 
    return $cleanTime; 
} 

function weeks($year) 
       { 
return date("W",mktime(0,0,0,12,28,$year)); 
} 
?> 

<?php 


      $year = date("Y"); 

      echo "<form method='GET' action='index.php'>"."<select name='w' onChange='this.form.submit()'>"; 
for($i=1;$i<=weeks($year);$i++) 
{ 


$start = weekDayToTime($i, $year); 
$end = cleanTime(604800 + $start); 

    if(weekDayToTime(date("W"), date("Y")) == $start) 
    { 
     $selected = "selected = 'selected' /"; 
    } 
    else 
    { 
     $selected = '/'; 
    } 

echo "<option value='".$i."' $selected>KW ".$i.": ".strftime("%d. %B %Y", $start)." bis ".strftime("%d. %B %Y", $end)."</option>"; 
} 
echo "</select>"."<input type='hidden' name='y' value='".$year."' />"."</form>"; 

?> 

Спасибо, Chris

ответ

1
1 <?php 
    2 function weekDayToTime($week, $year, $dayOfWeek = 1) { 
    3  $dayOfWeekRef = date("w", mktime (0,0,0,1,4,$year)); 
    4  if ($dayOfWeekRef == 0) $dayOfWeekRef = 7; 
    5  $resultTime = mktime(0,0,0,1,4,$year) + ((($week - 1) * 7 + ($dayOfWeek - $dayOfWeekRef)) * 86400); 
    6  $resultTime = cleanTime($resultTime); //Cleaning daylight saving time hours 
    7  return $resultTime; 
    8 }; 
    9 
    10 function cleanTime($time) { 
    11  //This function strips all hours, minutes and seconds from time. 
    12  //For example useful of cleaning up DST hours from time 
    13  $cleanTime = mktime(0,0,0,date("m", $time),date("d", $time),date("Y", $time)); 
    14  return $cleanTime; 
    15 } 
    16 function weeks($year) 
    17 { 
    18  return date("W",mktime(0,0,0,12,28,$year)); 
    19 } 
    20 
    21 $year = date("Y"); 
    22 echo('year is ' . var_export($year, true)); 
    23 echo('weeks is ' . var_export(weeks($year), true)); 
    24 
    25 echo "<form method='GET' action='index.php'>"."<select name='w' onChange='this.form.submit()'>"; 
    26 for($i=1;$i<=weeks($year);$i++) { 
    27 
    28 
    29  $start = weekDayToTime($i, $year); 
    30  $end = cleanTime(604800 + $start); 
    31 
    32  if(weekDayToTime(date("W"), date("Y")) == $start) { 
    33   $selected = "selected = 'selected'"; 
    34  } else { 
    35   $selected = ''; 
    36  } 
    37 
    38  echo "<option value='".$i."' $selected>KW ".$i.": ".strftime("%d. %B %Y", $start)." bis ".strftime("%d. %B %Y", $end)."</option> \n"; 
    39 } 
    40 echo "</select>"."<input type='hidden' name='y' value='".$year."' />"."</form> \n"; 
    41 
    42 ?> 

Это моя версия кода, который, кажется, работает нормально, единственное, что я изменил удаляет косые черты из $ selected, чтобы не иметь самозакрывающиеся теги опций. Может ли это так?

+0

Я отредактировал мое сообщение и включил туда функции! Надеюсь, вы можете помочь мне, даже если я не верю, что это имеет какое-то отношение к моим функциям. –

+0

см. Мой выше edit – rubes114

+1

вот и все! Потрясающие! Спасибо огромное! Только одно: сейчас месяцы на английском языке, любая идея, как я могу получить месяцы на другом языке, например, на немецком языке? –

Смежные вопросы