Перейти к контенту

Скрипт Отсчёта времени до НГ


Рекомендуемые сообщения

Я думаю проще оставлять спан пустым, чем делать такой маленький таймаут, который потом будет напрягать машину пусть даже и не сильно.

 

Оптимизация великая вещь.

 

Называется "ищем умных программеров".

Ссылка на комментарий
Поделиться на других сайтах

  • Ответы 69
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

Оптимизация великая вещь.

Тогда сделать setInterval("ojidanieNG()", 1000), чтобы раз в секунду секунды перещелкивал.

Ссылка на комментарий
Поделиться на других сайтах

Зачем таймаут такой маленький? ;) Зачем лишне грузить машину, у тебя же не милисекунды меняются :)

А вот зачем:

document.write('<span id="left">До нового года осталось <big>йух</big> знает сколько!!!</span>')

 

Называется "ищем внимательных юзеров" :D

А зачем вобще такой прикол? И в чем он заключается? Типа закодирован код? Когда я пытался сделать выравнивание по правому краю, эта надпись все время вылезала.

Ссылка на комментарий
Поделиться на других сайтах

А зачем вобще такой прикол? И в чем он заключается? Типа закодирован код? Когда я пытался сделать выравнивание по правому краю, эта надпись все время вылезала.
Нет, это изначальный текст который находится в спане, потом он заменится тем что нужно.

 

Кстати FatCat, ты подумал о юзверях у которых будет отключен JS, думаешь им будет приятно лицезреть твою надпись? :D

Ссылка на комментарий
Поделиться на других сайтах

Кстати FatCat, ты подумал о юзверях у которых будет отключен JS, думаешь им будет приятно лицезреть твою надпись? :D

Конечно подумал:

document.write('<span id="left">До нового года осталось <big>йух</big> знает сколько!!!</span>')
Если отключена джава, кто будет отрабатывать врайт?

 

У меня уже вошло в привычку изменяемые объекты создавать по возможности скриптом же, чтобы при отключеной джаве хвостов не оставалось.

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...

В опере грузит прикольно..вначале 2 секунды смотришь что осталось йух! знает сколько...потом становится норм..

 

но 1 проблема всё же есть.

Как изменить шрифт ? Что не пробывал все равно идёт как под тегом уже и перед словами этот тег закрывал на всякий..всё равно не прошло.

 

Хелп.

Ссылка на комментарий
Поделиться на других сайтах

все равно идёт как под тегом уже и перед словами этот тег закрывал на всякий..всё равно не прошло.

1. Поищи в стилях, что есть на span{...}

2. Поищи в стилях, нет ли чего на #left{...}

3. Плюнь на все, и замени на

document.write('<span id="left" style="font-style: normal;">До нового года осталось <big>йух</big> знает сколько!!!</span>')

Ссылка на комментарий
Поделиться на других сайтах

В действии можно посмотреть здесь: http://www.pharm-forum.ru/index.php?showtopic=1941

Скажи плиз как в пост его также воткнуть ? :D Уж очень понравилось ;)

Ссылка на комментарий
Поделиться на других сайтах

В действии можно посмотреть здесь: http://www.pharm-forum.ru/index.php?showtopic=1941

Скажи плиз как в пост его также воткнуть ? ;) Уж очень понравилось :)

Через phpMyAdmin :D

Ссылка на комментарий
Поделиться на других сайтах

Да меня честно тоже волнует этот вопрос? (или просто удалить скриптик ,или можно добавить другое событие)
Ссылка на комментарий
Поделиться на других сайтах

Скажите, а что будет когда новый год настанет? В минус уйдёт?
Да. Можно сделать проверку для отключения кода.
Ссылка на комментарий
Поделиться на других сайтах

Скажите, а что будет когда новый год настанет? В минус уйдёт? :D

Заглючит: дни будут с минусиками, а часы, минуты и секунды будут считаться с уменьшением.

 

 

или можно добавить другое событие

Можно:

В строке

BigDay = new Date("January 1, 2007")

поставить другую дату; а вместо текста "До нового года осталось" можно написать другой.

Ссылка на комментарий
Поделиться на других сайтах

Если дату сделать динамической - все будет окей. Не 2007, а текущий год+1
Ссылка на комментарий
Поделиться на других сайтах

Через phpMyAdmin

Нехотелось бы там на косячить что юзеры на НГ получат в подарок EROR 404 =)) Скажи по-мелочи где и что редактить.

Ссылка на комментарий
Поделиться на других сайтах

Скажите, а что будет когда новый год настанет? В минус уйдёт?
Да. Можно сделать проверку для отключения кода.

Как? Желательно чтоб он сам врубался 1 декабря и отрубался в новогоднюю ночь - полная автоматизация :D
Ссылка на комментарий
Поделиться на других сайтах

Сделал заплатку, чтобы не требовалось в новогоднюю ночь ловить глюки.

Теперь с наступлением НГ он начнет отсчитывать время до следующего НГ.

<script LANGUAGE="JAVASCRIPT">
document.write('<span id="left"> </span>')
function ojidanieNG(){
today = new Date()
BigDay = new Date("January 1, 2007")
timeLeft = (BigDay.getTime() - today.getTime())
if(timeLeft<0){
BigDay = new Date("January 1, 2008")
timeLeft = (BigDay.getTime() - today.getTime())
}
e_daysLeft = timeLeft / 86400000
daysLeft = Math.floor(e_daysLeft)
e_hrsLeft = (e_daysLeft - daysLeft)*24
hrsLeft = Math.floor(e_hrsLeft);
e_minsLeft = (e_hrsLeft - hrsLeft)*60
minsLeft = Math.floor(e_minsLeft)
seksLeft = Math.floor((e_minsLeft - minsLeft)*60)
document.getElementById("left").innerHTML = 'До Нового года осталось: <b>'+daysLeft+'</b> дней, <b>'+hrsLeft+'</b> часов, <b>'+minsLeft+'</b> минут, <b>'+seksLeft+'</b> секунд!'
}
setInterval("ojidanieNG()", 1000)
</SCRIPT>

 

 

 

Желательно чтоб он сам врубался 1 декабря и отрубался в новогоднюю ночь - полная автоматизация ;)

И чтобы не надо было каждый год цифирьки перебивать?

Запросто:

<script LANGUAGE="JAVASCRIPT">
document.write('<span id="left"> </span>')
function ojidanieNG(){
today = new Date()
BigDay = new Date("January 1, 2001")
todey = today.setYear('2000')
timeLeft = (BigDay.getTime() - today.getTime())
e_daysLeft = timeLeft / 86400000
daysLeft = Math.floor(e_daysLeft)
e_hrsLeft = (e_daysLeft - daysLeft)*24
hrsLeft = Math.floor(e_hrsLeft);
e_minsLeft = (e_hrsLeft - hrsLeft)*60
minsLeft = Math.floor(e_minsLeft)
seksLeft = Math.floor((e_minsLeft - minsLeft)*60)
var seksRight=''
if(seksLeft==1||seksLeft==21||seksLeft==31||seksLeft==41||seksLeft==51)seksRight='а'
if(seksLeft==2||seksLeft==3||seksLeft==4||seksLeft==22||seksLeft==23||seksLeft=
=24||seksLeft==32||seksLeft==33||seksLeft==34||seksLeft==42||seksLeft==43||seksLe
ft==44||seksLeft==52||seksLeft==53||seksLeft==54)seksRight='ы'
if(e_daysLeft>0 && e_daysLeft<31)document.getElementById("left").innerHTML = 'До Нового года осталось: <b>'+daysLeft+'</b> дней, <b>'+hrsLeft+'</b> часов, <b>'+minsLeft+'</b> минут, <b>'+seksLeft+'</b> секунд'+seksRight+'!'
else document.getElementById("left").innerHTML = ' '
}
setInterval("ojidanieNG()", 1000)
</SCRIPT>

Опс! В Опере глюк! Как подправлю - отпишусь!

Исправил код - теперь и в Опере работает.

Заодно добавил морфологическую обработку для секунд.

 

*** Опять в этом форуме что-то с безопасностью мудрят... :D

В коде после if должна быть открывающая скобка, а не ее метасимвол с разрывом...

Изменено пользователем FatCat
Ссылка на комментарий
Поделиться на других сайтах

а почему на яваскрипт?

ну почему в пхп нет дива?

<?php
$now = time();
$newyear = mktime(0,0,0,1,1,2007);
$ostalos = $newyear - $now;
$ostalosdney = integer_divide($ostalos, 24);
$ostalosdney = integer_divide($ostalosdney, 60);
$ostalosdney = integer_divide($ostalosdney, 60);
$ostalosdney2 = $ostalosdney*60*60*24;
$ostalos = $ostalos - $ostalosdney2;
$ostaloschasov = integer_divide($ostalos, 60);
$ostaloschasov = integer_divide($ostaloschasov, 60);
$ostaloschasov2 = $ostaloschasov*60*60;
$ostalos = $ostalos - $ostaloschasov2;
$ostalosminut = integer_divide($ostalos, 60);
$ostalosminut2 = $ostalosminut*60;
$ostalos = $ostalos - $ostalosminut2;
$ostalossecund = $ostalos;
$ostalosstr = $ostalosdney." дней, ".$ostaloschasov." часов, ".$ostalosminut." минут, ".$ostalossecund." секунд.";
echo $ostalosstr;
function integer_divide($x, $y){
  $t = 1;
  if($y == 0 || $x == 0)
   return 0;
  if($x < 0 XOR $y < 0) 
   $t = -1;
  $x = abs($x);
  $y = abs($y);
  $ret = 0;
  while(($ret+1)*$y <= $x)
   $ret++;
  return $t*$ret;
}
?>

Ссылка на комментарий
Поделиться на других сайтах

не подскажите как и где убрать лишние., чтоб отражались только дни (дата например до 8-марта , 9-мая и т.д. ) где править?

спасибо.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.