За последние 24 часа нас посетили 17789 программистов и 1652 робота. Сейчас ищут 905 программистов ...

Неделя от начала года до определенного числа

Тема в разделе "Прочие вопросы по PHP", создана пользователем cocka, 29 мар 2009.

  1. cocka

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

    С нами с:
    29 мар 2009
    Сообщения:
    72
    Симпатии:
    0
    уж пол дня интернет будоражу. много что испробывал но все не то.

    ЗАДАЧА: К примеру в input задается дата в формате "2008.03.29" или за любой другой год
    Нужно вычислить какая неделя от начала года до этого числа. И получить ответ "13".

    я частично добился коечего, разницу между датами и округление.

    PHP:
    1. $now = strtotime("27.03.2009");
    2. $selected_date = strtotime("01.01.2009");
    3. $seconds_diff = $now - $selected_date;
    4. $days_diff = $seconds_diff / (60*60*24);
    5. $weeks_diff=$days_diff/7;
    6. echo (int) $weeks_diff;
    Пример с 2009 по "27.03.2009", потом можно было бы поделить на 7 и округлить, но не годится. Если будет за 2007 или за 2012 заданно!?
    выйдет к примеру 300-ая неделя, а мне надо с текущего года и формат "2008.03.29"-"гггг.мм.дд".

    Будте добры пособите

    СПАСИБО
     
  2. Alost

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

    С нами с:
    7 фев 2009
    Сообщения:
    335
    Симпатии:
    0
    Адрес:
    Город вокруг невы
  3. cocka

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

    С нами с:
    29 мар 2009
    Сообщения:
    72
    Симпатии:
    0
    и? ничего информативного по моему вопросу я по этой ссылке не вижу.

    Я так понимаю примерно так должно быть
    1-присваивание (году год...)
    2-вычислить неделю с начала года до заданной даты
    3-выдать кол. недель c начала года

    Я любитель, будте любезны код написать
     
  4. Alost

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

    С нами с:
    7 фев 2009
    Сообщения:
    335
    Симпатии:
    0
    Адрес:
    Город вокруг невы
    cocka
    Лентяй...
    PHP:
    1.  
    2. Символ в строке format - W
    3. Описание -Порядковый номер недели года по ISO-8601, первый день недели - понедельник (добавлено в PHP 4.1.0)   
    4. Пример возвращаемого значения: Например: 42 (42-я неделя года)
    5.  
     
  5. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Значит плохо смотрите.

    PHP:
    1. <?php
    2. $date= strtotime("27.03.2009");
    3. echo date("W", $date);
     
  6. cocka

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

    С нами с:
    29 мар 2009
    Сообщения:
    72
    Симпатии:
    0
    ё мое, это я знаю,
    это не поможет в моем вопросе
     
  7. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Звучит.
     
  8. cocka

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

    С нами с:
    29 мар 2009
    Сообщения:
    72
    Симпатии:
    0
    ухты,, не догадался, СПАСИБО
    1 - как его перевернуть скажите пожалуйста?
    с "27.03.2009" на "2009.03.27"

    если будет задаваться в
    PHP:
    1. <input name="datum1" type="text" value="2009.03.27" size="9" maxlength="10">
    и потом пихаться в mysql или вытаскиваться и обновляться.

    PHP:
    1. <?php
    2. ...
    3. $result=mysql_query('SELECT * FROM Ausbildungsnachweis ORDER BY datum',$db);
    4. <form ...
    5.    Datum:  <input name="datum2" type="text" value="%s" size="9" maxlength="10"><input name="submit" type="submit" value="&Auml;ndern" /></td>
     
  9. Alost

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

    С нами с:
    7 фев 2009
    Сообщения:
    335
    Симпатии:
    0
    Адрес:
    Город вокруг невы
  10. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Желательно дату задавать в стандартном формате. База ведь тоже такой формат не поймет.
    PHP:
    1. <?php
    2. if (strpos($_POST["date"], ".") == 4) {
    3.     $datearr = explode(".", $_POST["date"]);
    4.     $_POST["date"] = $datearr[2].'.'.$datearr[1].'.'.$datearr[0];
    5. }
    6. $date= strtotime($_POST["date"]);
    7. echo date("W", $date);
     
  11. cocka

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

    С нами с:
    29 мар 2009
    Сообщения:
    72
    Симпатии:
    0
    СПАСИБО БОЛЬШОЕ за помощь "лентяю". бысро и эффективно.