2012-02-16 1 views
1

Я использую библиотеку datejs с модулем timejs. Мы получаем контактные запросы в таблицу и хотим разработать время ответа. Поэтому у меня есть дата начала с отметкой времени и датой ответа.Разработка количества часов, прошедших между двумя датами с использованием datejs и timejs

Я использовал date.js для определения разницы во времени между двумя датами. Проблема в том, что он выполняет простой математический расчет между двумя числами, указанными в каждой временной метке, а не с учетом того, что 24 часа истекает для каждой разницы в день.

Так, например:

var start = Date.parse("Feb 16 2012 15:30:00"); 
var end = Date.parse("Feb 19 2012 09:30:00"); 

var span = new TimeSpan(end - start); 

var tdiff = span.hours; 


console.log(tdiff); 

Это дает мне результат 18 часов, когда фактическое время, прошедшее между этими двумя датами 66hours. Как я могу использовать эту библиотеку, чтобы дать мне фактическое время?

Во-вторых, рабочий день с 9 утра до 5:30 вечера, как я могу исключить часы, которые не являются частью рабочего дня из этого расчета?

+1

Чтобы уточнить, 'TimeSpan' состоит из нескольких временных частей (дни, часы, минуты, секунды, миллисекунды). Ваш 'span' возвращает' 18 часов', потому что разница между 'start' и' end' составляет '2 дня и 18 часов'. Вы можете рассчитать общее количество часов, умножив «дни» на «24» и добавив «часы». Всего часов = '(2 * 24) + 18 = 66'. –

ответ

1
var start = Date.parse("Feb 16 2012 15:30:00"); 
var end = Date.parse("Feb 19 2012 09:30:00"); 

var numOfHrs = (end-start)/(1000*60*60); 
alert(numOfHrs); 
alert((24-15.5) * (numOfHrs/24)); 
+0

Это не отвечает на мой вопрос. Этот код дает мне вывод «0» –

+0

см. Здесь http://jsfiddle.net/QTVWd/ он возвращает 66 –

+0

Thats weird. Я получаю вывод «0», но я рассмотрю его. Можете ли вы помочь мне в том, как я могу исключить нерабочие часы? –