Autor Tema: Validacion entre fechas  (Leído 2252 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado madolfo

  • Sv Member
  • ***
  • Mensajes: 155
Validacion entre fechas
« : febrero 20, 2008, 09:56:41 am »
Bueno sres, me he topado con el problema q yo necesito validar en un formulario dos fechas, actualmente estoy trabajando con php, he buscado scripts y ninguno hace lo q necesito.

En un apartado del formulario tengo una etiqueda q muestra la duracion en dias, entonces tengo dos input text en los cuales se ingresan las fechas de inicio y fin q completaran esos dias, entonces para evitar cualquier error del usuario necesito contar cuantos dias hay entre las fechas.

Para cuando es el mismo mes no tengo ningun problema pero para cuando son meses diferentes.. no me da el resultado adecuado del contador de dias..

Quisiera saber si uds se han topado con este problema y si tienen alguna funcion que haga lo q necesito o de q manera lo han solucionado. De preferencia la solucion la necesito en JavaScript para evitar procesar el formulario y despues generar el error.

De antemano gracias por toda la ayuda q me puedan brindar. :thumbsup:

Desconectado sortux

  • -^- Elite Silver -^-
  • Sv Full Member
  • *
  • Mensajes: 854
  • Si kieres Paz, prepárate para la Guerra!!!
    • \"
Re: Validacion entre fechas
« Respuesta #1 : febrero 20, 2008, 10:54:21 am »
Mira encontre un código y me puse a travesearlo y esto logré hacer, espero te funcione:

Código: [Seleccionar]
<script>
/*******************************
 Cálculo de días dadas 2 fechas.
*******************************/

function cambioFecha()
{
  entrada = new Date(document.forms[0].anoent.value,document.forms[0].mesent.value,document.forms[0].diaent.value);
  salida = new Date();
  salida.setTime(entrada.getTime()+86400000);
  mes = salida.getMonth();
  if (mes<10) mes="0"+mes;
  document.forms[0].diasal.value=salida.getDate();
  document.forms[0].messal.value=mes;
  document.forms[0].anosal.value=salida.getFullYear();
  calcula()
}
function calcula()
{
  df = document.forms[0]
  entrada = new Date(df.anoent.value,df.mesent.value,df.diaent.value)
  salida=new Date(df.anosal.value,df.messal.value,df.diasal.value)


  c = Math.round(((salida - entrada) / 86400000) + 1)


  df.cuantos.value = c
}

</script>

<form>
Entrada:
<select name="diaent" size="1" onchange="cambioFecha()">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>

<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>

<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>

<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>


<select name="mesent" size="1" onchange="cambioFecha()">
<option value="00">01</option>
<option value="01">02</option>
<option value="02">03</option>
<option value="03">04</option>
<option value="04">05</option>
<option value="05">06</option>
<option value="06">07</option>
<option value="07">08</option>

<option value="08">09</option>
<option value="09">10</option>
<option value="10">11</option>
<option value="11">12</option>
</select>

<select name="anoent" size="1" onchange="cambioFecha()" class="combos">
<option value="2005">2005</option>
<option value="2006">2006</option>
<option value="2007">2007</option>
<option value="2008" selected="selected">2008</option>
<option value="2009">2009</option>
</select>

<p>

Salida:

<select name="diasal" size="1" onchange="calcula()">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>

<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>

<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>

<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>


<select name="messal" size="1" onchange="calcula()">
<option value="00">01</option>
<option value="01">02</option>
<option value="02">03</option>
<option value="03">04</option>
<option value="04">05</option>
<option value="05">06</option>
<option value="06">07</option>
<option value="07">08</option>

<option value="08">09</option>
<option value="09">10</option>
<option value="10">11</option>
<option value="11">12</option>
</select>

<select name="anosal" size="1" onchange="calcula()">
<option value="2005">2005</option>
<option value="2006">2006</option>
<option value="2007">2007</option>
<option value="2008" selected>2008</option>
<option value="2007">2009</option>
</select>

<p>

Número de Días:<input type=text name=cuantos>
</form>
There are only 10 types people in the world: Those who understand binary and those who don't

[img alt="some alt text"]http://ubuntucounter.geekosophical.net/img/ubuntu-user2.php?user=4815

Desconectado madolfo

  • Sv Member
  • ***
  • Mensajes: 155
Re: Validacion entre fechas
« Respuesta #2 : abril 04, 2008, 10:28:55 am »
Hey gracias por la respuesta algo tardada las gracias pero hay tamos  :thumbsup:

Hare un par de cambios y comentare para ver como me funciona  :D