Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > HTML и CSS
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2017, 21:26   #1
Max00766
Форумчанин
 
Регистрация: 15.11.2015
Сообщений: 151
По умолчанию Счетчик недель на сайте

Есть такой элемент на сайте
Снимок.PNG
Нужно что бы каждую неделю в понедельник число увеличивалось на 1.
Делаю сайт для студентов и нужно для отслеживания какая сейчас учебная неделя.
В коде это выглядит как просто заголовок 3-го уровня:
Код:
<h3>Неделя № 34</h3>
Подскажите, пожалуйста, как это реализовать, заранее спасибо.
Надеюсь раздел выбрал правильно
Max00766 вне форума Ответить с цитированием
Старый 30.04.2017, 21:36   #2
Max00766
Форумчанин
 
Регистрация: 15.11.2015
Сообщений: 151
По умолчанию

Нашел такой код, не могу понять как его прикрутить к моему заголовку?
Код:
<?php
$day = 01;
$month = 09;
$year = 2016;
$age= ((int)((mktime (0,0,0,$month,$day,$year) - time(void))/86400) * -1 );
print ("Кол-во дней прошедших после 1 января 2000 года: " . $age . ".");
?>
Max00766 вне форума Ответить с цитированием
Старый 01.05.2017, 21:41   #3
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Вам обязательно на PHP надо? Просто это можно сделать и на javaScript. Кроме того, для получения номера текущей недели в данном году не надо хранить её номер, так как единственный вариант для хранения - это базы данных или файлы, ИМХО.
Лучше всего получать номер текущей недели, основываясь на текущей дате. Вот посмотрите здесь: http://shpargalkablog.ru/2013/11/week-of-year-js.html
Вадим Мошев вне форума Ответить с цитированием
Старый 01.05.2017, 21:43   #4
Max00766
Форумчанин
 
Регистрация: 15.11.2015
Сообщений: 151
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Вам обязательно на PHP надо? Просто это можно сделать и на javaScript. Кроме того, для получения номера текущей недели в данном году не надо хранить её номер, так как единственный вариант для хранения - это базы данных или файлы, ИМХО.
Лучше всего получать номер текущей недели, основываясь на текущей дате. Вот посмотрите здесь: http://shpargalkablog.ru/2013/11/week-of-year-js.html
Мне просто нужен номер не с текущего года, а с 01.09.2016
Сделал так, прошу проверить, по задумке, если день недели = 1 (понедельник) то увеличивать счетчик. Все правильно?
Код:
             <h3>Неделя № 
                            <?php $c = '35'; //значение недели
                            echo $c;
                            if(date('N')==1){ $c++; } ?>
                        </h3>
Max00766 вне форума Ответить с цитированием
Старый 02.05.2017, 09:42   #5
Max00766
Форумчанин
 
Регистрация: 15.11.2015
Сообщений: 151
По умолчанию

Прикрутил такие костыли:
Код:
<h3>Неделя №
<?php
$a = round((strtotime (date("d.F.Y"))-strtotime (date("01.09.2016")))/(60*60*24) / 7);
echo $a;
?>
</h3>
Потестил с разными датами, вроде работает как надо
Max00766 вне форума Ответить с цитированием
Старый 02.05.2017, 16:17   #6
domenianna
Новичок
Джуниор
 
Регистрация: 02.05.2017
Сообщений: 2
По умолчанию

Это вовсе и не костыли, а кусок кода) не плохо..
domenianna вне форума Ответить с цитированием
Старый 03.05.2017, 09:07   #7
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,156
По умолчанию

зачем весь огород то?
http://www.php.su/date - смотрите модификтор W
Код:
echo date("W");
выдаст порядковый номер недели с начала года
Если хотите с какого-то конкретного времени, тоже ничего сложного - вычисляете как
Код:
abs(date("W")-date("W","начало отсчета"))
ADSoft вне форума Ответить с цитированием
Старый 03.05.2017, 09:47   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
Если хотите с какого-то конкретного времени, тоже ничего сложного - вычисляете как
вот код топик стартера показывает, что с 01.09.2016 сейчас идёт 35 неделя (17 недель в 2016 году + 18-я идёт сейчас).
А ваш код какую неделю покажет?

тогда уже:
Код:
echo date("W")+date("W", strtotime("31.12.2016"))-date("W", strtotime("01.09.2016"))."<br>\n";
да и вообще.
Не вижу ничего "ужасного" в коде TC. Код достаточно понятный, рабочий, то, что от него требуется - делает.
Скорее всего будет нормально работать, даже если разница в годах будет более одного года
(хотя, скорее всего ТС это не надо, т.к., предполагаю, что он номер учебной недели показывает).


p.s. а вообще с номерами недели всё не так просто, как может показаться
поясню.
например, функция PHP не учитывает, что 1 января 2006 года была 52 неделя (см. календарь)
а 1 и 2 января 2005 года была 53 неделя (см. календарь)

Последний раз редактировалось Serge_Bliznykov; 03.05.2017 в 09:58.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Счетчик посетителей на сайте Egoriy Помощь студентам 3 19.06.2012 09:14
Подсчет недель tibult SQL, базы данных 2 25.04.2011 17:23
Как разместить счетчик на сайте Андрей1988 Помощь студентам 2 21.04.2011 18:13
Счетчик обратного отчета на сайте xurd Помощь студентам 0 05.04.2011 12:36
Счетчик посещении на сайте Yaga HTML и CSS 13 13.11.2009 19:58