Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Как вычесть 8 часов???


Автор: Tema Zla 13.11.2007, 20:30
Ребята, вот такой код, который считает время, оставшиеся в сутках.
Что подправить, если подсчёт надо вести до определённой даты, 16 часов вечера, а не до 24.

Код

<script LANGUAGE="javascript">
today = new Date();
BigDay = new Date("November 15, 2007")
msPerDay = 24 * 60 * 60 * 1000 ;
timeLeft = (BigDay.getTime() - today.getTime());
e_daysLeft = timeLeft / msPerDay;
daysLeft = Math.floor(e_daysLeft);
e_hrsLeft = (e_daysLeft - daysLeft)*24;
hrsLeft = Math.floor(e_hrsLeft);
minsLeft = Math.floor((e_hrsLeft - hrsLeft)*60);
document.write( "Осталось "+daysLeft+"</b> день, <b>"+hrsLeft+"</b> час.и <b>"+minsLeft+"</b> мин.");
</SCRIPT>


Добавлено через 13 минут и 14 секунд
Вот так вообще-то:

Код

BigDay = new Date("November 14, 16:00:00, 2007")

Автор: Tema Zla 13.11.2007, 20:46
а как добавить if , чтобы с 16 до 18 выпадал другой текст?!

Автор: NNaarreekk 13.11.2007, 20:50
На первый вопрос можно так
Код

<script LANGUAGE="javascript">
today = new Date();
BigDay = new Date("November 15, 2007")
msPerDay = 24 * 60 * 60 * 1000 ;
timeLeft = (BigDay.getTime() - today.getTime());
e_daysLeft = timeLeft / msPerDay;
daysLeft = Math.floor(e_daysLeft);
e_hrsLeft = (e_daysLeft - daysLeft)*24;
hrsLeft = Math.floor(e_hrsLeft);
hrsLeft-=8;
e_hrsLeft-=8;
if(hrsLeft<0)hrsLeft+=24;
if(e_hrsLeft<0)e_hrsLeft+=24;
daysLeft-=1;
minsLeft = Math.floor((e_hrsLeft - hrsLeft)*60);
document.write( "Осталось "+daysLeft+"</b> день, <b>"+hrsLeft+"</b> час.и <b>"+minsLeft+"</b> мин.");
</SCRIPT>


на второй подумаем.

Добавлено через 1 минуту и 35 секунд
А в каком смысле 16-18?
Когда у нас это время или когда осталось столько?

Автор: Tema Zla 13.11.2007, 21:09
Когда идёт именно это время, с 16:00 до 18:00 !!!

Автор: NNaarreekk 13.11.2007, 21:34
Код

<script LANGUAGE="javascript">
today = new Date();
BigDay = new Date("November 15, 2007")
msPerDay = 24 * 60 * 60 * 1000 ;
timeLeft = (BigDay.getTime() - today.getTime());
e_daysLeft = timeLeft / msPerDay;
daysLeft = Math.floor(e_daysLeft);
e_hrsLeft = (e_daysLeft - daysLeft)*24;
hrsLeft = Math.floor(e_hrsLeft);
hrsLeft-=8;
e_hrsLeft-=8;
if(hrsLeft<0)hrsLeft+=24;
if(e_hrsLeft<0)e_hrsLeft+=24;
daysLeft-=1;
minsLeft = Math.floor((e_hrsLeft - hrsLeft)*60);
//
timeh=today.getHours();
if(timeh==16){}
//
document.write( "Осталось "+daysLeft+"</b> день, <b>"+hrsLeft+"</b> час.и <b>"+minsLeft+"</b> мин.");
</SCRIPT>


Лови!

Автор: Tema Zla 14.11.2007, 14:52
Ну так в 17:00 текст проподает, да и изначальный остаётся.
А мне надо, чтобы менялся "осталось..." на "бла...".

Код

<script LANGUAGE="javascript">
today = new Date();
BigDay = new Date("November 14, 16:00:00, 2007")
msPerDay = 24 * 60 * 60 * 1000 ;
timeLeft = (BigDay.getTime() - today.getTime());
e_daysLeft = timeLeft / msPerDay;
daysLeft = Math.floor(e_daysLeft);
e_hrsLeft = (e_daysLeft - daysLeft)*24;
hrsLeft = Math.floor(e_hrsLeft);
minsLeft = Math.floor((e_hrsLeft - hrsLeft)*60);
//
timeh=today.getHours();
if(timeh==16){
document.write("бла...");
}
//
document.write( "Осталось "+daysLeft+"</b> день, <b>"+hrsLeft+"</b> час.и <b>"+minsLeft+"</b> мин.");

Автор: NNaarreekk 14.11.2007, 17:43
Код

<script LANGUAGE="javascript">
today = new Date();
BigDay = new Date("November 14, 16:00:00, 2007")
msPerDay = 24 * 60 * 60 * 1000 ;
timeLeft = (BigDay.getTime() - today.getTime());
e_daysLeft = timeLeft / msPerDay;
daysLeft = Math.floor(e_daysLeft);
e_hrsLeft = (e_daysLeft - daysLeft)*24;
hrsLeft = Math.floor(e_hrsLeft);
minsLeft = Math.floor((e_hrsLeft - hrsLeft)*60);
//
timeh=today.getHours();
if(timeh>=16 && timeh<=18){
document.write("бла...");
}
else {
document.write( "Осталось "+daysLeft+"</b> день, <b>"+hrsLeft+"</b> час.и <b>"+minsLeft+"</b> мин.");
}


В принцыпе не трудно было догодаться!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)