2014-08-01 3 views
0

Я знаю, как использовать javascript, но у меня нет глубоких знаний об этом. Я знаю, как я могу получить разницу дат в днях на PHP, но в этом случае мне нужно решение javascript. Честно говоря, я даже не знаю, можно ли сделать это с помощью Javascript. Я предполагаю, что это так, но это всего лишь предположение.Разница дат в днях в javascript?

Вот HTML, что у меня есть:

<div class="span3" id="checkin"> 
    <span class="text-label"><i class="icon-calendar"></i>Check In</span> 
    <input type="text" name="checkin" value="02/08/2014"> 
</div> 

<div class="span3" id="checkout"> 
    <span class="text-label"><i class="icon-calendar"></i>Check Out</span> 
    <input type="text" name="checkout" value="04/08/2014"> 
</div> 

Эти два поля фактически бутстраповские выбора даты. Они всегда имеют некоторые значения по умолчанию. Теперь я хочу, чтобы пользователь менял эти два значения, чтобы рассчитать разницу между двумя датами (это будет предупреждение или консольный журнал, я найду свой путь оттуда).

Проблема в том, что я понятия не имею, с чего начать и как это сделать. Снова я предполагаю, что событие onchange может быть хорошим кандидатом, но ... Я не знаю, как рассчитать разницу.

Любая помощь будет глубоко оценена.

С уважением, Джон

+3

Чтение о [Дата] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) может помочь. – Teemu

+0

Я нашел эту ссылку, но нет примера того, как вы можете получить различие между двумя датами в количестве дней ... Спасибо в любом случае ... – user2417624

+0

«Итак, вот общая предпосылка для расчета разницы между двумя датами-конвертирования обе даты относятся к числу с использованием Date.getTime() и вычитаются! " от http://www.javascriptkit.com/javatutors/datedifference.shtml – UweB

ответ

2

Вы могли бы сначала разобрать вашу строку, могут создать дату JavaScript подобное:

var start = $("input[name=checkin]").val().split("/"); 
var end = $("input[name=checkout]").val().split("/"); 

var startDate = new Date(start[2], start[1]-1, start[0]); 
var endDate = new Date(end[2], end[1]-1, end[0]); 

Тогда вы можете просто вычитать даты друг от друга:

endDate - startDate 

Это вычитание даст вам разницу во времени в миллисекундах. Чтобы преобразовать это в дни, просто разделите его на количество миллисекунд в день (1000 * 60 * 60 * 24).

Теперь у вас есть разница в днях. Например, см. JSFiddle.

+0

Спасибо ... Я найду свой путь отсюда ... я понятия не имел, как разделить/символы и как рассчитать дату ... Еще раз спасибо за помощь – user2417624

-1
var date1 = new Date("7/11/2010"); 
var date2 = new Date("12/12/2010"); 
var timeDiff = Math.abs(date2.getTime() - date1.getTime()); 
var diffDays = Math.ceil(timeDiff/(1000 * 3600 * 24)); 
alert(diffDays)​; 

Попробуйте это. я нашел его из этого link

+0

Это возвращает 155. –

0
<script type="text/javascript"> 

//Set the two dates 
today=new Date() 
var christmas=new Date(today.getFullYear(), 11, 25) //Month is 0-11 in JavaScript 
if (today.getMonth()==11 && today.getDate()>25) //if Christmas has passed already 
christmas.setFullYear(christmas.getFullYear()+1) //calculate next year's Christmas 
//Set 1 day in milliseconds 
var one_day=1000*60*60*24 

//Calculate difference btw the two dates, and convert to days 
document.write(Math.ceil((christmas.getTime()-today.getTime())/(one_day))+ 
" days left until Christmas!") 

Этот короткий Javascript будет отображать разницу между DAY сегодня (значение 1) и Рождество (ваш 2 значения). Ovbioulsy они могут быть заменены нашими двумя значениями и затем должны работать.

Пример: осталось 146 дней до Рождества!

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