Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Разница между датами (https://javascript.ru/forum/misc/16189-raznica-mezhdu-datami.html)

Amour 29.03.2011 16:33

Разница между датами
 
Помогите со скриптом

нужно найти разницу между двумя датами
одна дата вводится с клавиатуры (<input type = "date") а вторая - текущая дата..

заранее спасибо:)

melky 29.03.2011 16:43

var d = new Date();
d.setTime(Date.parse("21 May 1958 10:12"));

alert ( +new Date - d );


лучше прочитать это

Amour 29.03.2011 16:52

как сделать вместо ("21 May 1958 10:12") чтобы была дата с клавиатуры

melky 29.03.2011 20:38

попробую заодно функции html run ( теги форума)


вот

вводите сюда дату . Формат - <b>Y-m-d</b> <br>
<input type = "date" value="2011-03-30" onclick="do_it(this)">
<br>
событие <b>пока ничего.</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 = " было " + d + " часов назад";
else str = " будет через " + d + " часов.";

// это я щак нашел элемент,куда записывать строку (увы,лучше придумать не мог :D )
 el.parentNode.children[4].innerHTML = str;

}
</script>


код хорошо комментирован. думаю, проблем возникнуть не должно

часы даются не в привычном представлении ( 20:30 ), а в десятичном ( вместо 20:30 будет 20.5 )

и еще, во времени,которое выбирается, часы,минуты,секунды установлены на 00:00:00

рони 29.03.2011 21:01

melky,
На всякий случай .... Date.parse
Цитата:

Для краткого формата даты допускается использование разделителей "/" или "-", но порядок элементов должен быть строго "месяц/день/год", например "7/20/96".


Часовой пояс GMT +3, время: 16:41.