2015-04-13 14 views
0

Я нахожусь в ситуации, когда мне нужно выяснить общую часовую разницу между двумя объектами даты, но вещь датируется в фактическом формате.Как получить общее количество часов между двумя датами в javascript?

Date 1: 6 Apr, 2015 14:45
Date 2: 7 May, 2015 02:45

Если бы в стандартном формате, просто я был бы использован метод ниже: var hours = Math.abs(date1 - date2)/36e5;

Я не знаю, как я могу получить разницу в час здесь .. . пожалуйста помоги.

+0

я бы порекомендовал вам взглянуть на [momentjs] (http://momentjs.com/) – PhilSchneider

+4

не могли бы вы конвертировать как метки времени в секундах, вычитая одно из другие, а затем разделить на 60 и 60 снова? –

+0

Что вы подразумеваете под фактическим форматом? Независимо от того, может ли ваша проблема справиться с проблемой moment.js. – doldt

ответ

0

Вы можете создавать объекты даты из ваших строк:

var dateOne = "6 Apr, 2015 14:45"; 
var dateTwo = "7 May, 2015 02:45"; 
var dateOneObj = new Date(dateOne); 
var dateTwoObj = new Date(dateTwo); 
var hours = Math.abs(dateTwoObj - dateOneObj)/36e5; 
+0

Что такое date1 и date2 в коде youe? – Saty

+0

@saty Спасибо за указание! Я исправил, что –

+0

@TimOsadchiy: Большое спасибо ... теперь он отлично работает! :) –

0

Вы можете создать два объекта даты из строк, которые вы предоставили

var date1 = new Date("6 Apr, 2015 14:45"); 
var date2 = new Date("7 May, 2015 02:45"); 

, то вы можете просто получить метку времени из двух дат и найти разницу

var difference = Math.abs(date1.getTime() - date2.getTime()); 

Теперь, чтобы преобразовать, что часы просто преобразуют его сначала в секунды (делят на 1000, потому что результат в миллисекундах), затем делят его на 3600 (чтобы преобразовать его с секунд в часы)

var hourDifference = difference/1000/3600; 
0
var date1 = new Date("6 Apr, 2015 14:45").getTime()/1000; 

var date2 = new Date("7 May, 2015 02:45").getTime()/1000; 

var difference = (date2 - date1)/60/60; 
console.log(difference); //732 hours or 30.5 days 
0

Я не уверен, что вы имеете в виду, но это работает для меня.

<!DOCTYPE html> 
 
<html> 
 
<body> 
 

 
<p id="hours"></p> 
 

 
<script> 
 
var d1 = new Date("1 May, 2015 14:45"); 
 
var d2 = new Date("29 April, 2015 14:45"); 
 
var hours = (d1-d2)/36e5; 
 
document.getElementById("hours").innerHTML = hours; 
 
</script> 
 

 
</body> 
 
</html>

Смежные вопросы