Помогите написать скрипт для автосмены текста каждую неделю

12
Dim565
На сайте с 19.08.2010
Offline
57
3014

Добрый день.

Подскажите пожалуйста, как сделать, чтобы каждую неделю менялся (точнее - чередовался) текст через скрипт?

Пробовал взять за основу это (именно с чередованием найти не смог)

<script type="text/javascript">

var date = new Date()
var month = date.getMonth() + 1
var day = date.getDate()
var cure = day+"."+month;
if((cure > "1.11") || (cure < "7.11")) {document.write("1");}
if((cure > "7.11") || (cure < "14.11")) {document.write("2");}
</script>

Но работает неправильно :(

juniorspecialistphp
На сайте с 08.08.2010
Offline
25
#1

Вот как можно определить номер недели в ПХП

echo strftime("%W"); 

А дальше уже от номера недели действуйте.

Пишу скрипты любой сложности на РНР. (http://elagin.su)
Dim565
На сайте с 19.08.2010
Offline
57
#2

juniorspecialistphp, спасибо, конечно, но мне бы хотелось в Java Script'е...

Нашел пока еще такой кодик:

<script type="text/javascript">
today=new Date(); // Initialize Date in raw form
day = today.getDay(); // Get the day in number form (0,1,2,3,etc.)
document.write(day);
</script>

Но тоже работает кривова-то. То показывает правильно, то сменил я на своем ПК день недели - а скрипт показывает тот же. Сменил еще на другой день - показал правильно. Вернул на сегодняшнее число - завис на старом :(

WT
На сайте с 08.10.2010
Offline
17
#3

ну "показывает тот же" - скорее всего из-за кэша браузера...

А смысл таких манипуляций объяснить можете? Если хотите показывать "меню в армейской столовой", которое меняется раз в неделю - это одно, а если хотите брать случайный текст из какого-то набора - это несколько другое

И почему именно JS интересует, а не PHP?

За еду не работаю, зарабатываю здесь (http://www.sape.ru/r.amStvLXttk.php) Работа для ленивых - продвигай сайты автоматически (http://seopult.ru/ref.php?ref=1f6f897913cc593f)
Dim565
На сайте с 19.08.2010
Offline
57
#4
WebTih:
И почему именно JS интересует, а не PHP?

Ну если есть что-то готовое на PHP - напишите пожалуйста. Просто на JS я уже видел пару скриптов, знаю куда их встраивать в движок и т.п...

Хочу сделать просто меняющийся каждую неделю текст (неделя1 - текст1, неделя2-текст2)

WT
На сайте с 08.10.2010
Offline
17
#5

Опять нет четкой постановки задачи)

WebTih:
Если хотите показывать "меню в армейской столовой", которое меняется раз в неделю - это одно, а если хотите брать случайный текст из какого-то набора - это несколько другое

В зависимости от постановки - может быть предложено и решение

Dim565
На сайте с 19.08.2010
Offline
57
#6

Короче, нужно было определение четной/нечетной недели. Все скрипты, которые я раньше находил - работали неправильно (смена недели у них была не в Понедельник, а в другой день).

Похоже, вот этот код работает:

<script type="text/javascript">
myDate = new Date();
rdate = myDate.getDate();
rday = myDate.getDay();
myDate.setDate(1);

if(!rday)
k=6; else k=rday-1;
if(!myDate.getDay())
l=6; else l=myDate.getDay()-1;

if(rdate<8-l){
ponedelnik = 8-l;
if(ponedelnik/2 == Math.floor(ponedelnik/2))
chet = 0; else chet = 1;
} else {
ponedelnik = rdate - k;
if(ponedelnik/2 == Math.floor(ponedelnik/2))
chet = 1; else chet = 0;
if(chet==1){document.write('Четная')} else {document.write('Нечетная')};
}
</script>
WT
На сайте с 08.10.2010
Offline
17
#7

Ну вы, блин, даете... (с)Генерал

ТС, попробуйте найти 3 отличия между

Dim565:
Добрый день.
Подскажите пожалуйста, как сделать, чтобы каждую неделю менялся (точнее - чередовался) текст через скрипт?

и

Dim565:
Короче, нужно было определение четной/нечетной недели.

Я 2 раза просил уточнить задачу, решение Вашей проблемы нашлось бы гораздо быстрее...

Dim565:
Все скрипты, которые я раньше находил - работали неправильно (смена недели у них была не в Понедельник, а в другой день)

Если Вы не в курсе, то у буржуев неделя меняется в воскресенье... это если правильно использовать доступные механизмы. А если не правильно - то неделя может смениться вообще в любой день)

Dim565
На сайте с 19.08.2010
Offline
57
#8

WebTih, да немного не точно написал сначала - извиняюсь

Может ли кто помочь с такой проблемой: этот скрипт:

<script type="text/javascript">
myDate = new Date();
rdate = myDate.getDate();
rday = myDate.getDay();

myDate.setDate(1);
if(myDate.getDay()==1){
if(!rday)
k=6; else k=rday-1;
ponedelnik = rdate - k;
if(ponedelnik/2 == Math.floor(ponedelnik/2))
chet = 1; else chet = 0;
} else {
if(!myDate.getDay())
l=6; else l=myDate.getDay()-1;
if(rdate<8-l){
ponedelnik = 8-l;
if(ponedelnik/2 == Math.floor(ponedelnik/2))
chet = 0; else chet = 1;
} else {
if(!rday)
k=6; else k=rday-1;
ponedelnik = rdate - k;
if(ponedelnik/2 == Math.floor(ponedelnik/2))
chet = 1; else chet = 0;
}
if(chet==1){document.write("Четная")} else {document.write("Нечетная")};
}
</script>

работает не совсем корректно. Например:

3-9 Января 2011 = нечетная неделя
10-16 Января = четная
17-23 Января = нечетная
24-30 Января = четная

31 Января-6 Февраля=четная

Первые 4 недели скрипт работает без проблем

Как только ставлю 1 Февраля, т.е новый месяц - скрипт показывает не "нечетную", а "четную" неделю.

В чем может быть проблема?

WT
На сайте с 08.10.2010
Offline
17
#9

Если я правильно понимаю в четности недель:

1-2 января - нечетная неделя(1)

3-9 - четная(2)

10-16 - нечетная (3)

17-23 - четная(4)

24-30 - нечетная (5)

31-06 - четная (6)

Вы уверены, что для Ваших первых четырех случаев

Dim565:

3-9 Января 2011 = нечетная неделя
10-16 Января = четная
17-23 Января = нечетная
24-30 Января = четная
31 Января-6 Февраля=четная

Первые 4 недели скрипт работает без проблем

правильно определяется четность?

4arger
На сайте с 17.12.2008
Offline
95
#10


var year = new Date().getFullYear();
var mоnth = new Date().getMonth();
var today = new Date(year, mоnth, 0).getTime();
var now = new Date().getTime();
var week = Math.round((now - today) / (1000 * 60 * 60 * 24 * 7));
if (week % 2) {
alert("Текущая неделя - чётная");
} else {
alert("Текущая неделя - нечётная");
}

источник

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий