Электронная библиотека
Программисту веб-дизайнеру
Другие материалы
Библиотека: скачать готовые скрипты Javascript
Подсчет количества времени с начала или до конца некоторой заданной даты
Посмотрите на работу этого практичного скрипта на отдельной веб-странице (персональный компьютер).
Очень удобный скрипт, который автоматически считает, сколько дней (либо часов, минут, секунд, недель, лет и т.д.) прошло с какой-либо стартовой даты или осталось до какой-либо финишной даты, явно заданной в скрипте. Использует абсолютное время в миллисекундах, переводимое в различные временные единицы. Можно считать дни (1000*60*60*24)мс, часы (1000*60*60)мс, минуты (1000*60)мс, секунды (1000)мс, недели (1000*60*60*24*7)мс, года (1000*60*60*24*365)мс и другие временные периоды, переведенные в миллисекунды.
Текст комментариев редактируемый. Скрипт полностью не русифицирован, поэтому дату в комментариях можно указать не в виде скрипта и переменной, а прописать явно (вписать дату вместо переменных olddates и newdates) или косвенно (например: до конца акции осталось ... дней, с момента начала работы магазина прошло ... дней, до нового года осталось ... минут). Указание фиксированной даты в значении переменной именно на английском языке строго обязательно. Для тех, кто не знает английского, приводим переводы названий месяцев.
Январь -- January
Февраль -- February Март -- March Апрель -- April Май -- May Июнь -- June Июль -- July Август -- August Сентябрь -- September Октябрь -- October Ноябрь -- November Декабрь -- DecemberВыделите мышью приводимый ниже код (выберите нужное), скопируйте его (командой Ctrl+C) и вставьте его (командой Ctrl+V) в свою веб-страницу после тэга <body> на нужное Вам место.
<script language="javascript'>
<!--
olddates = 'January 01, 2000' // прошедшая дата на английском
d0 = new Date(olddates);
d1 = new Date();
dt = (d1.getTime() - d0.getTime()) / (1000*60*60*24);
document.write('Стартовая дата - <B>' + olddates + '</B> <br />От начала стартовой даты уже наступил <B>' + Math.round(dt) + '</B> день');
-->
</script>
<script language="javascript'>
<!--
newdates = 'September 18, 2020' // будущая дата на английском
d0 = new Date(newdates);
d1 = new Date();
dt = (d0.getTime() - d1.getTime()) / (1000*60*60*24*365);
document.write('Финишная дата - <B>' + newdates + '</B> <br />До указанного времени еще осталось <B>' + Math.round(dt) + '</B> лет');
-->
</script>
<script language="javascript'>
<!--
newdates = 'September 18, 2020' // будущая дата на английском
d0 = new Date(newdates);
d1 = new Date();
dt = (d0.getTime() - d1.getTime()) / (1000*60*60*24*30);
document.write('Финишная дата - <B>' + newdates + '</B> <br />До указанного времени еще осталось <B>' + Math.round(dt) + '</B> месяцев');
-->
</script>
<script language="javascript'>
<!--
newdates = 'September 18, 2020' // будущая дата на английском
d0 = new Date(newdates);
d1 = new Date();
dt = (d0.getTime() - d1.getTime()) / (1000*60*60*24*7);
document.write('Финишная дата - <B>' + newdates + '</B> <br />До указанного времени еще осталось <B>' + Math.round(dt) + '</B> недель');
-->
</script>
<script language="javascript'>
<!--
newdates = 'September 18, 2020' // будущая дата на английском
d0 = new Date(newdates);
d1 = new Date();
dt = (d0.getTime() - d1.getTime()) / (1000*60*60*24);
document.write('Финишная дата - <B>' + newdates + '</B> <br />До указанного времени еще осталось <B>' + Math.round(dt) + '</B> дней');
-->
</script>
<script language="javascript'>
<!--
newdates = 'September 18, 2020' // будущая дата на английском
Hourdates = '12' // часы
d0 = new Date(newdates);
d1 = new Date();
dt = (d0.getTime() - d1.getTime()) / (1000*60*60) + Hourdates;
document.write('Финишная дата и время - ' + Hourdates + '.00 часов <B>' + newdates + '</B> <br />До указанного времени еще осталось <B>' + Math.round(dt) + '</B> часов');
-->
</script>
<script language="javascript'>
<!--
newdates = 'September 18, 2020' // будущая дата на английском
Hourdates = '12' // часы
Minutedates = '30' // минуты
d0 = new Date(newdates);
d1 = new Date();
dt = (d0.getTime() - d1.getTime()) / (1000*60) + Minutedates + Hourdates*24;
document.write('Финишная дата и время - ' + Hourdates + '.' + Minutedates + ' часов <B>' + newdates + '</B> <br />До указанного времени еще осталось <B>' + Math.round(dt) + '</B> минут');
-->
</script>
<script language="javascript'>
<!--
newdates = 'September 18, 2020' // будущая дата на английском
Hourdates = '12' // часы
Minutedates = '30' // минуты
Seconddates = '25' // секунды
d0 = new Date(newdates);
d1 = new Date();
dt = (d0.getTime() - d1.getTime()) / (1000) + Seconddates + Minutedates*60 + Hourdates*60*60;
document.write('Финишная дата и время - ' + Hourdates + '.' + Minutedates + ':' + Seconddates +' <B>' + newdates + '</B> <br />До указанного времени еще осталось <B>' + Math.round(dt) + '</B> секунд');
-->
</script>
А теперь немного теории. Существую семь методов объекта: getDay(), getDate(), getMonth(), getYear(), getHour(), getMinute(), и getSecond() (получить соответственно День, Число, Месяц, Год, Час, Минуту, Секунду). Все они существуют, их можно определить и использовать на странице. Показывают соответственно день, дату, месяц, год, час, минуту и секунду того момента, во время которого производится запрос. Поскольку сценарий клиентский, получаем именно то, что на компьютере у Клиента (а не на Вашем интернет-сервере).
С 1 января 2000 вместо двух последних цифр года, как раньше, getYear в IE показывает полный четырехзначный номер, другие браузеры могут проглючить. На данной странице использовалось абсолютное время в миллисекундах getTime().