Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Сменя CSS в определенный день недели (https://javascript.ru/forum/dom-window/25102-smenya-css-v-opredelennyjj-den-nedeli.html)

ravchik 25.01.2012 14:29

Сменя CSS в определенный день недели
 
Доброго времени суток!
Нужен скрипт смены css-стиля в определенный день недели.. Пользовался поиском, нашел скрипт смены по дням недели (вс-пн) - вот тут, но мне нужно, чтобы CSS менялся на другой только в пятницу, а в остальные дни был обычный.
В javascript полный чайник...

Nekromancer 25.01.2012 16:12

if((new Date()).getDay() == 5){
element.className = 'friday-class'
}else {
element.className = 'other-all-class'
}

Aetae 25.01.2012 16:14

<link rel="stylesheet" href="style.css">
<script>
(function(){
  var date = new Date(),
      time = +date,
      day = ( 12 - date.getDay() ) % 7 ;
  function friday(){
    document.getElementsByTagName('link')[0].setAttribute('href', 'friday.css')
  }
  if(day) {//не пятница
    date.setDate( date.getDate() + day )
    date.setHours( 0, 0, 0, 0 )
    setTimeout( friday , date - time )
  }else{  //пятница
    friday()
  }
})()
</script>

=))

Nekromancer 25.01.2012 16:17

Цитата:

Сообщение от Aetae
day = ( 12 - date.getDay() ) % 7 ;

Нафига? Так каждый день будет пятница :)

Aetae 25.01.2012 16:26

?
alert(( 12 - new Date().getDay() ) % 7 + ' дня до пятницы')

Nekromancer 25.01.2012 16:31

Цитата:

Сообщение от Aetae
if(day !== 5) {//не пятница

Ну тут же ты не проверяешь сколько дней до пятницы, а проверяешь какой сегодня день. day === 5 будет только при getDay() === 0, чего собственно не бывает.

Да, это я опечатался тоже, будет не пятницей каждый день.

Aetae 25.01.2012 16:36

Да есть такое, поправил.
На коленке делал, так что я не виноват.)
P.S. getDay() === 0 - бывает, это воскресенье.

рони 25.01.2012 17:17

Вариант ...
var day = ['воскресенья','понедельника','вторника','среды','чеверга','пятницы','субботы']
var data =  (new Date()).getDay();
var arr = [];
for (var i=0; i<7; i++)  {
arr[i]= i - (data>i?(data-7):data) + ' дня до '+day[i]
}
alert(arr.join('\n'))

Nekromancer 25.01.2012 17:19

Цитата:

Сообщение от Aetae
P.S. getDay() === 0 - бывает, это воскресенье.

Хм, а я подумал с единицы считается, хотя таки не правильно предположение.

ravchik 25.01.2012 17:53

Aetae, подправил скрипт под себя (движок DLE):
<link rel="stylesheet" href="{THEME}/css/style.css" type="text/css" media="screen, projection" />
<script>
(function(){
  var date = new Date(),
      time = +date,
      day = ( 12 - date.getDay() ) % 7 ;
  function friday(){
    document.getElementsByTagName('link')[0].setAttribute('href', '{THEME}/css/friday.css')
  }
  if(day) {//не пятница
    date.setDate( date.getDate() + day )
    date.setHours( 0, 0, 0, 0 )
    setTimeout( friday , date - time )
  }else{  //пятница
    friday()
  }
})()
</script>

Не работает... (менял дату на локальном компьютере)
Имеет значение, что на странице подключены 2 css-файла? Я так полагаю, что скрипт должен, при условии что сегодня пятница, заменять файл style.css на friday.css в элементе <link href="">?


Часовой пояс GMT +3, время: 01:52.