Показать сообщение отдельно
  #1 (permalink)  
Старый 21.12.2014, 16:30
Новичок на форуме
Отправить личное сообщение для gevtiman Посмотреть профиль Найти все сообщения от gevtiman
 
Регистрация: 21.12.2014
Сообщений: 2

Разница между часами + тарифы
У меня такое дело, я работаю в анти-кафе. Тема такая: человек заходит мы ему даем карточку на которой час когда он к нам зашел. Когда выходит, мы соответственно смотрим на час и считаем сколько времени он у нас провел и умножаем количество минут на 10 (с 02:00 до 18:00) и на 17 (с 18:00 - 02:00).

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

Раньше на этом форуме находил что-то похожее (считывает сколько минут прошло после ДАТЫ, а мне нужно с часа) но не смог адаптировать под свои нужды.

<!DOCTYPE html>
<html>
Enter date - <b>m-m-dy</b> <br>
<input type = "date" value="2014-12-21" onclick="do_it(this)">
<br>
Action <b>Nothing yet</b>
<script>
// кэш
reg = /\d{4}-\d{2}-\d{2}/;
k = 1/(1000*60*60) ;

function do_it(el){
/*проверка на соответствие шаблону*/
if ( !reg.test(el.value) ) {alert('err');return}
var now = new Date(); // текущее время
var fut = Date.parse( el.value ); // введенное время
var delta = fut - now; // разница во времени ( в миллисекундах)
var back = delta < 0; // TRUE, если время уже прошло. FALSE, если оно еще не наступило
// т.к. в delta может быть и отрицательное число, то берем модуль, делим на 1000 и на 3600 ( после 1000 получаются секунды,после 3600 - часы) и потом округляем до двух знаков после запятой

var d = (Math.abs(delta)*k).toFixed(2);

// тут формирование строки. в d у нас количество часов

var str = '';
if( back) str = " was " + d + " hours ago";
else str = " will be in" + d + " hours.";
// это я щак нашел элемент,куда записывать строку (увы,лучше придумать не мог )
el.parentNode.children[4].innerHTML = str;
}
</script>

<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
</html>


Помогите пожалуйста. Заранее спс
Ответить с цитированием