Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   Подсчет дней в IE, даты пользователя (https://javascript.ru/forum/css-html-internet-explorer/2920-podschet-dnejj-v-ie-daty-polzovatelya.html)

gotravelman 26.02.2009 14:21

Подсчет дней в IE, даты пользователя
 
Друзья помогите.

Нужно чтобы подсчитывалось количество дней,
есть три поля: дата с, дата по и собсна поле с выводом кол-ва дней.
Написал...
В мозилле и гуглхроме работает,
в ие и опере нет.

Точнее в ИЕ вообще NAN пишет,
в опере неправильно понимает параметры даты, например вместо месяца он понимает часы и т.д.

Изначально если прописывать даты в Date, например

Код:

<script>
function getdays() {

var Datavon = new Date(2009,4,3);
var Databis = new Date(2009,4,7);

var Tagen = Math.round((Databis.getTime() -

Datavon.getTime())/(1000*60*60*24));


document.form1.totaltag.value = Tagen+1;
               
}
</script>

Все работает во всех броузерах

если писать с переменными, чтобы дата бралась из поля в которое ввел пользователь, начинаются косяки... (переменные Vond и Bisd не подхватываются функцией Date в IE, а в opere не так понимаются)

Код:

<script>
function getdays() {

var Vond = document.form1.von.value;
var Bisd = document.form1.bis.value;
var Datavon = new Date(Vond);
var Databis = new Date(Bisd);

var Tagen = Math.round((Databis.getTime() -

Datavon.getTime())/(1000*60*60*24));


document.form1.totaltag.value = Tagen+1;
               
}
</script>

Как с этим бороться не знаю, помогите плиз.

полный код ниже

Код:

<html>
<body>

<form name="form1">
<input type="text" name="totaltag">
von<input name="von" value="2009,4,3"> bis<input name="bis"
value="2009,4,6">
<input type="button" onclick="getdays()" value="Счетадь">
</form>

<script>
function getdays() {
var Vond = document.form1.von.value;
var Bisd = document.form1.bis.value;
var Datavon = new Date(Vond);
var Databis = new Date(Bisd);

var Tagen = Math.round((Databis.getTime() - Datavon.getTime())/(1000*60*60*24));

document.form1.totaltag.value = Tagen+1;
}
</script>


</body>
</html>

пример можно посмотреть здесь: http://gdetoleto.ru/dcount.htm

ZoNT 26.02.2009 14:24

тут
Цитата:

Сообщение от gotravelman
var Datavon = new Date(2009,4,3); var Databis = new Date(2009,4,7);

по три переменных, а тут:
Цитата:

Сообщение от gotravelman
var Datavon = new Date(Vond); var Databis = new Date(Bisd);

по одной...

gotravelman 26.02.2009 15:11

почему по три?

input name="von" value="2009,3,4"

var Vond = von.value (т.е. = 2009,3,4 )

при проверке например Vond

Код:

<script>
function getdays() {

var Vond = document.form1.von.value;
var Bisd = document.form1.bis.value;
var Datavon = new Date(Vond);
var Databis = new Date(Bisd);

var Tagen = Math.round((Databis.getTime() -

Datavon.getTime())/(1000*60*60*24));


document.form1.totaltag.value = Vond;
               
}
</script>

выдает что Vond (например)= 2009,3,4 а про прописывании Vond в Date это значение куда-то теряется...

кроме того в мозилле работает и в гуглхроме...
по логике в этом логики нет...

ZoNT 26.02.2009 15:15

"2009,3,4" - строка - одна переменная
2009, 3, 4 - ТРИ числа - три переменных.

gotravelman 26.02.2009 15:18

ok, спасибо... так наверно поможет...
но терзает впрос, почему мозилла и гуглхром так понимают как нужно...это не понятно совсем))

Но все равно огромнейшее спасибо... как-то меня моззила сбила с этой мысли.. даже в голову не пришла такая мысль

gotravelman 26.02.2009 15:20

Цитата:

Сообщение от gotravelman (Сообщение 13255)
ok, спасибо... так наверно поможет...
но терзает впрос, почему мозилла и гуглхром так понимают как нужно...это не понятно совсем))

Но все равно огромнейшее спасибо... как-то меня моззила сбила с этой мысли.. даже в голову не пришла такая мысль

Блин написал как не русская

Snipe 26.02.2009 16:25

Цитата:

Сообщение от gotravelman (Сообщение 13256)
Блин написал как не русская

И с полом непонятки :laugh:


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