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

Есть скрипт показывающий время жизни сайта (на JS), помогите его отред


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

У меня есть JS сркипт который показывает время жизни сайта (в моём случаи форума).

Помогите его отредактировать.

У меня показывает:

Форум в сети: 5-й месяц 24-й день.

Как сделать что бы показывало:

Форум в сети: 4 месяца 23 дня

?

Скрипт:

<script language="JavaScript">
<!--
function rus(n,a1,a2,a3){
var s=new String(n);
if(s.length>=2&s.substr(-2,1)=="1") return a1;
switch(s.charAt(s.length-1)){case"1":return a2;case"2":case"3":case"4":return a3;}
return a1;}
function countUp(){
x=true; showYear=false;
start=new Date('June 19, 2007');
dd=new Date();d0=dd.getDate();d1=start.getDate();m0=dd.getMonth();m1=start.getMonth();y0=dd.getFullYear();y1=start.getFullYear();
var _m=(y0-y1)*12+(m0-m1);var _d=0;txt="";
if(d0>d1){_d=d0-d1;if(x){_m++;_d++;}}
if(d0<d1){__y=(m0==0)?y0-1:y0;__m=(m0==0)?11:m0-1;_d=(new Date(y0,m0,d0,0,0,0)-new Date(__y,__m,d1,0,0,0))/(1000*24*60*60);if(!x){_m--;_d--;}}
if(d0==d1)
 txt="Форуму <b>"+_m+"</b> "+rus(_m,"месяцев","месяц","месяца")+" <font color=red>РОВНО!</font>";
_y = Math.floor((_m-1)/12);if(x)_y++;
if(d0==d1&m0==m1)
 txt="Форуму <b>"+_y+"</b> "+rus(_y,"лет","год","года")+" <font color=red>РОВНО!</font>";
_m=(_y>0&showYear)?_m%12:_m;
ty=(showYear&_y>0)?"<b>"+_y+"</b> "+rus(_y,"лет","год","года"):"";
tm=(_m>0)?"<b>"+_m+"</b> "+rus(_m,"месяцев","месяц","месяца"):"";
_d=Math.ceil(_d);
td="<b>"+_d+"</b> "+rus(_d,"дней","день","дня");
if(x){
ty=(showYear)?"<b>"+_y+"</b>-й год":"";
tm="<b>"+_m+"</b>-й месяц";
td="<b>"+_d+"</b>-й день";
if(txt=="")txt="Форум в сети: "+ty+" "+tm+" "+td+".";
}else if(txt=="")txt="Форуму уже: "+ty+" "+tm+" "+td+".";
document.write(txt);
}
//--></script>

 

ЗЫ: И можно ли как нибудь уменьшить код? наверняка найдутся ненужные функции...

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

Ну дык в чем проблема-то?

 

Вместо этого

start=new Date('June 19, 2007');

 

Вот это

start=new Date('July 20, 2007');

 

Ты дату рождения форума не знаешь чтоли? :D

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

Очень умно.

5-ый месяц, это значит что сейчас идёт 5-ый месяц, а прошло 4..., 24-ый день идёт сейчас, а прошло 23...

не ужели непонятно.

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

Я тебе правку привел

 

Если ты не проверил, то после правки он показывает то что ты хотел т.е. то что ты описал в первом посте этой темы.

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

У меня нечто похожее сделано на php: срок трезвости (форум алкоголиков). Дата начала трезвости сделана через дополнительные поля профиля.

Обсчет:

$base_prefix	= $author[field_2];
$base_day		= $author[field_3];
$base_mon		= $author[field_4];
$base_yr		= $author[field_5];

if(IsSet($base_prefix) and strlen($base_prefix) < 40 and strlen($base_prefix) > 2){
if(IsSet($base_day) and IsSet($base_mon) and IsSet($base_yr))
{
$current_day		= date ("j");
$current_mon		= date ("n");
$current_yr		= date ("Y");
$base_mon_max		= date ("t",mktime (0,0,0,$base_mon,$base_day,$base_yr));
$base_day_diff 		= $base_mon_max - $base_day;
$base_mon_diff 		= 12 - $base_mon - 1;
$start_day		= 1;
$start_mon		= 1;
$start_yr		= $base_yr + 1;
$day_diff	= ($current_day - $start_day) + 1; 	// add today
$mon_diff	= ($current_mon - $start_mon) + 1;	// add current month
$yr_diff	= ($current_yr - $start_yr);
$day_diff	= $day_diff + $base_day_diff;
$mon_diff	= $mon_diff + $base_mon_diff;
if ($day_diff >= $base_mon_max)
{
$day_diff = $day_diff - $base_mon_max;
$mon_diff = $mon_diff + 1;
}
if ($mon_diff >= 12)
{
$mon_diff = $mon_diff - 12;
$yr_diff = $yr_diff + 1;
}
$years = "лет";
$month = "месяцев";
$days = "дней";
if ($yr_diff%10 == "1" and $yr_diff!="11") $years = "год";
if ($yr_diff%10 == "2" and $yr_diff!="12") $years = "года";
if ($yr_diff%10 == "3" and $yr_diff!="13") $years = "года";
if ($yr_diff%10 == "4" and $yr_diff!="14") $years = "года";

if ($mon_diff == "1") $month = "месяц";
if ($mon_diff == "2" or $mon_diff == "3" or$mon_diff == "4") $month = "месяца";

if ($day_diff == "1" or $day_diff == "21" or$day_diff == "31") $days = "день";
if ($day_diff == "2" or $day_diff == "3" or $day_diff == "4"
or $day_diff == "22" or $day_diff == "23" or $day_diff == "24"
or $day_diff == "31") $days = "дня";

if($yr_diff >= 0){
$trezvz = "<b>".$base_prefix.":</b><br>";
if($yr_diff>0){$trezvz .= $yr_diff." ".$years;}
if($yr_diff>0 and $mon_diff>0){$trezvz .= ", ";}
if($mon_diff>0){$trezvz .= $mon_diff." ".$month;}
if($day_diff>0 and $mon_diff>0){$trezvz .= ", ";}
if($day_diff>0 and $mon_diff==0 and $yr_diff>0){$trezvz .= ", ";}
if($day_diff>0){$trezvz .= $day_diff." ".$days;}
}
}
}

 

Тот же принцип формирования строки можно и на джавскрипте сделать.

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

Ну а конкретно с моим JS можно сделать что нить?

 

Если ты не проверил, то после правки он показывает то что ты хотел т.е. то что ты описал в первом посте этой темы.

Четыре месяца и пятый месяц - разницу видите?

 

Ты дату рождения форума не знаешь чтоли? smile.gif

Если я незнаю, то кто тогда её устанавливал?

 

Конечно спасибо Вам за отзывчивость, но это не то что мне надо.

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

Вряд ли можно сократить. Вообще, такая форма записи JS крайне нечитабильна. По-моему легче будет реализовать такое на PHP. Кстати сказать, где-то год назад я такую штуку писал. Вот можете посмотреть мою запись на эту тему: http://www.ibresource.ru/forums/blog/vasya...hp?showentry=87
Ссылка на комментарий
Поделиться на других сайтах

vasyast

Спасибо

А в скин ипб он встроиться без проблем?

Что буде писаться. Если будет ровное кол во лет? Просто кол-во лет ( к примеру Проект в сети: 2 года) ? Что будет если форуму ровно (к примеру) 3 месяца? Бдуте просто написано форуму 3 месяца?...

Растолкуйте пожалуйста, если Вам несложно...

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

-Cross-, я модифицировал скриптец n-летней давности http://www.ibresource.ru/forums/blog/vasya...y=87#comment238

Сделайте php страничку с ним и потестите вывод с разными датами.

 

В шаблоны форума PHP вставлять нельзя. Поищите в поиске на форуме принцип вставки PHP кода в форум... Это не сложно.

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

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

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

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

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

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

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

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

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

Зарузка...
×
×
  • Создать...

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

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