За последние 24 часа нас посетили 18284 программиста и 1642 робота. Сейчас ищут 1583 программиста ...

Определение номера недели в году средствами php

Тема в разделе "PHP для новичков", создана пользователем Mikola7092, 2 июл 2010.

  1. Mikola7092

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

    С нами с:
    31 янв 2010
    Сообщения:
    9
    Симпатии:
    0
    Я работал над определением дат понедельника и воскресенья по введенному числу. то есть человек вводит число а ему показывается какого числа был понедельник и воскресенье на данной недели.(Кто не понял код ниже). Так вот мне теперь надо определить номер недели. Кто нибудь знает как это зделать???
    PHP:
    1.  
    2. <html><head><title></title></head><body>
    3. <form action="" method="post">
    4. ВВедите дату в виде 2010-07-01<br>
    5. <input name="datu" type="text" size="15" maxlength="15">
    6. <input type="submit" name="submit" value="Ввести">
    7. </form>
    8. <?php
    9.  
    10. $year=2010;// год начала
    11. $month=5; // месяц с какого начать
    12. $day=1;// день начала!!
    13. if (isset($_POST['datu'])){
    14.                          $datu = $_POST['datu'];
    15.                          if ($datu == ''){
    16.                                         unset($datu);
    17.                          }
    18.                          if ($datu != ''){
    19.                                         settype($year,integer);
    20.                                         settype($month,integer);
    21.                                         settype($day,integer);
    22.                                         $year= substr($datu, 0, 4);
    23.                                         $month= substr($datu, 5, 2);
    24.                                         $day= substr($datu, 8, 2);
    25.                          }
    26. }
    27. $monthoflen = date('t',mktime(0, 0, 0, $month, $day,$year));// дни в месяце
    28. $dayofweek = date('w',mktime(0, 0, 0, $month, $day,$year));// какой сегодня день!
    29. if($dayofweek==0){$dayofweek=7;}
    30. echo "$year-$month-$day<br>день в недели $dayofweek<br>";
    31. $tosunday=6-$dayofweek;
    32. $monthoflen2=$monthoflen-$tosunday;
    33. if($dayofweek==1){
    34. $year2=$year;
    35. $month2=$month;
    36. $day2=$day;
    37. }
    38. else{
    39. if($day<7){
    40.     if($day<$dayofweek){
    41.         if ($month==1){
    42.         $year2=$year-1;
    43.         $month2=12;
    44.         }
    45.         else{
    46.         $year2=$year;
    47.         $month2=$month-1;
    48.         }
    49.         $monthoflen3 = date('t',mktime(0, 0, 0, $month2, 0,$year2));// дни в месяце
    50.         $dtday=$dayofweek-$day;
    51.         $day2=$monthoflen3-$dtday;
    52.     }
    53.     else{
    54.     $year2=$year;
    55.     $month2=$month;
    56.     $day2=$day-$dayofweek+1;
    57.     }
    58. }
    59. else{
    60.     $year2=$year;
    61.     $month2=$month;
    62.     $day2=$day-$dayofweek+1;
    63. }
    64. }
    65. $day=$day2;  // от этой даты ищим воскресенье
    66. $month=$month2;
    67. $year=$year2;
    68. $monthoflen4 = date('t',mktime(0, 0, 0, $month, $day,$year));// дни в месяце
    69. $monthoflen2=$monthoflen4-6;
    70. if ($day>$monthoflen2){
    71. $dtday=$monthoflen4-$day;
    72. $dtday2=6-$dtday;
    73. $day2=$dtday2;
    74. $month2=$month+1;
    75. if ($month==12){
    76. $year2=$year+1;
    77. $month=1;
    78. }
    79. else{
    80. $year2=$year;
    81. $month2=$month+1;
    82. }
    83. }
    84. else{
    85. $day2=$day+6;
    86. $month2=$month;
    87. $year2=$year;
    88. }
    89. obrd0 ($month2);
    90. obrd0 ($day2);
    91. $datego=" <br>Воскресенье после вашей даты $year2-$month2-$day2<br>";
    92. $dateend=" <br>Понедельник перед вашей датой $year-$month-$day<br>";
    93. echo $datego,$dateend;
    94. function obrd0(&$danko){
    95. if (strlen($danko)==1){
    96. $danko="0$danko";
    97. }
    98. }
    99. ?>
    100. </body></html>
    101.  
     
  2. Diego Velaskes

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

    С нами с:
    2 июл 2010
    Сообщения:
    33
    Симпатии:
    0
    PHP:
    1. <?php
    2. echo date('N');
    3. ?>
     
  3. Mikola7092

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

    С нами с:
    31 янв 2010
    Сообщения:
    9
    Симпатии:
    0
    Diego Velaskes я конечно многое понимаю ну ты хотябы в ман заглянул там четко сказано про параметр N (N ISO-8601 numeric representation of the day of the week (added in PHP 5.1.0) 1 (for Monday) through 7 (for Sunday)).
    Мне не надо числовое значение дня недели!!! Если посмотреть внимательно в коде он другим параметром находится. Мне нужен номер недели начиная с начала года)))
     
  4. Mikola7092

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

    С нами с:
    31 янв 2010
    Сообщения:
    9
    Симпатии:
    0
    Все всем спасибо проблема решена))))) Всему вина плохое знание английского))))) Ношол официальный ман в нем есть такое))))
     
  5. Koc

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

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk