Foros del Web » Programando para Internet » Javascript »

fecha en javascript

Estas en el tema de fecha en javascript en el foro de Javascript en Foros del Web. necesito 3 combos (en javascript) de los q puedas seleccionar el dia x, el mes x y el año x (dd/mm/aaaa) para colocar fechas validas... ...
  #1 (permalink)  
Antiguo 28/07/2005, 15:18
 
Fecha de Ingreso: julio-2005
Mensajes: 15
Antigüedad: 18 años, 9 meses
Puntos: 0
fecha en javascript

necesito 3 combos (en javascript) de los q puedas seleccionar el dia x, el mes x y el año x (dd/mm/aaaa) para colocar fechas validas... gracias
  #2 (permalink)  
Antiguo 28/07/2005, 15:22
Avatar de Alexis_m20  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 71
Antigüedad: 20 años, 4 meses
Puntos: 0
YA, y quieres el codigo de como hacerlo.??
__________________
_______________________
Si Puedo Ayudar lo HARE
Mi web Pages
  #3 (permalink)  
Antiguo 29/07/2005, 05:54
 
Fecha de Ingreso: julio-2005
Mensajes: 15
Antigüedad: 18 años, 9 meses
Puntos: 0
si claro... quiero tres combos de los cuales se despleguen el día, el mes y el año! si tienes el código javascript de esto, ayudame porfa...
  #4 (permalink)  
Antiguo 29/07/2005, 06:22
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Son tres selects. el primero con numeros del 1 al 31, el segundo de enero a diciembre y el tercero por ejemplo de 1900 a 2005.

Eso es javascript? No lo entiendo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #5 (permalink)  
Antiguo 29/07/2005, 07:04
 
Fecha de Ingreso: julio-2005
Mensajes: 15
Antigüedad: 18 años, 9 meses
Puntos: 0
derkenuke acuerdate q no todos los meses terminan en 31 y acuerdate de los años bisiestos, yo quiero un calendario real... eso existe en javascript pero los que he conseguido no me convienen...
  #6 (permalink)  
Antiguo 29/07/2005, 07:19
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Y quieres generarlo para que no pueda elegirse una combinacion erronea?
No es mas facil poner todas las posibilidades y luego validarlo?

Bueno, estoy intentando la generacion ahora..
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #7 (permalink)  
Antiguo 29/07/2005, 07:55
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Con estas funciones puedes construirtelo tu mismo:

Código PHP:
function esBisiesto(year) { 
    return (((
year == 0) && (year 100 != 0)) || (year 400 == 0)) ? true false;
}

function 
limpiaSelect(select) {
    var 
elSelect=document.getElementById(select);
    while( 
elSelect.hasChildNodes() ) {
        
elSelect.removeChildelSelect.firstChild );
    }
}

function 
aniadeOpcion(selecttextovalor) {
    var 
elSelect=document.getElementById(select);
    var 
laOpcion=document.createElement("OPTION");
    
laOpcion.appendChilddocument.createTextNode(texto) );
    
laOpcion.setAttribute("value",valor);
    
elSelect.appendChild(laOpcion);

Yo creo que tampoco debe ser tan complicado. Es capturar el evento onchange de cada select, y actualizar los dos restantes segun el nuevo valor tomado.

Si te sale postea, si te encuentras con problemas, tambien
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #8 (permalink)  
Antiguo 29/07/2005, 08:02
 
Fecha de Ingreso: julio-2005
Mensajes: 15
Antigüedad: 18 años, 9 meses
Puntos: 0
gracias... dejame probar...
  #9 (permalink)  
Antiguo 17/08/2005, 20:59
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Me aburría y he rescatado el post. Te salió?

Mira esto:

Código PHP:
<script>



function 
esBisiesto(year) { 
    return (((
year == 0) && (year 100 != 0)) || (year 400 == 0)) ? true false


function 
limpiaSelect(elSelect) { 
    while( 
elSelect.hasChildNodes() )
        
elSelect.removeChildelSelect.firstChild ); 


function 
aniadeOpcion(elSelecttextovalor) { 
    var 
laOpcion=document.createElement("OPTION"); 
    
laOpcion.appendChilddocument.createTextNode(texto) ); 
    
laOpcion.setAttribute("value",valor); 
    
elSelect.appendChild(laOpcion); 
}


function 
rellenar_anio(elSelect) {
    for(var 
a=2005;a>=1900;a--)
        
aniadeOpcion(elSelecta.toString(), a.toString() );
}

var 
meses=["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"];
function 
rellenar_mes(elSelect) {
    for(var 
a=0;a<meses.length;a++)
        
aniadeOpcion(elSelectmeses[a], );
}

function 
rellenar_dia(elSelectaniomes ) {
    var 
ultimo_dia;
    
// febrero
    
if(mes==1)
        
ultimo_dia=esBisiesto(anio)?29:28;
    
// acaban en 31
    
else if( mes==|| mes==|| mes==|| mes==|| mes==|| mes==11)
        
ultimo_dia=31;
    else
        
ultimo_dia=30;
    for(var 
a=1a<=ultimo_diaa++) {
        
aniadeOpcion(elSelectaa);
    }
}




</script>


<select id="anio" onchange="actualizar()"></select>
<select id="mes" onchange="actualizar()"></select>
<select id="dia"></select>


<script>

var anio=document.getElementById("anio");
var mes=document.getElementById("mes");
var dia=document.getElementById("dia");

rellenar_anio(anio);
rellenar_mes(mes);
rellenar_dia(dia,2005,0);

function actualizar() {
    limpiaSelect(dia);
    rellenar_dia(dia, anio.options[anio.options.selectedIndex].value, mes.options[mes.options.selectedIndex].value );
}


</script> 
Es mejorable porque ni se acuerda del dia que le marcas al cambiar el mes o el año, ni tampoco se posiciona al cargar en la fecha actual, pero bueno, son cambios que se pueden hacer posteriormente.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #10 (permalink)  
Antiguo 18/08/2005, 08:07
Avatar de jeanclon  
Fecha de Ingreso: mayo-2005
Mensajes: 258
Antigüedad: 19 años
Puntos: 2
Amigos unos cuantos post mas abajo yo estoy preguntando algo sobre que no puedo colocarle el value a las opciones de los años que escribe el javascript. y puse el codigo con los tres select de los campos dia mes año, dependiendo del mes te muestra la cantidad de dias de ese mes y si es año bisiesto muestra en febrero 29 dias y si no muestra 28, en la propia pregunta coloce todo el codigo asi que se lo pueden copiar.

aca esta, de paso ven si pueden ayudarme con mi pregunta: http://www.forosdelweb.com/f13/campo-fecha-326004/

ah se me olvidava en el body deben colocar onLoad="SetToToday('FirstSelect');" para que coloque la fecha de hoy por defecto seleccionada.
  #11 (permalink)  
Antiguo 18/08/2005, 08:26
 
Fecha de Ingreso: julio-2005
Mensajes: 15
Antigüedad: 18 años, 9 meses
Puntos: 0
gracias pero ya resolví... conseguí un buen script que valida todo... si quieren se los paso...
  #12 (permalink)  
Antiguo 18/08/2005, 08:38
Avatar de jeanclon  
Fecha de Ingreso: mayo-2005
Mensajes: 258
Antigüedad: 19 años
Puntos: 2
deberias colocarlo, asi todos nos apoyamos...
  #13 (permalink)  
Antiguo 18/08/2005, 09:03
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Si, me gustaria echarle un vistazo y asi aprender de él.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #14 (permalink)  
Antiguo 19/08/2005, 08:24
 
Fecha de Ingreso: julio-2005
Mensajes: 15
Antigüedad: 18 años, 9 meses
Puntos: 0
Este javascript lo guardé como llenarDias.js

function esBisiesto(ano)
{
return ((ano%4==0 && ano%100!=0)||(ano%400==0)?true:false)
}

function llenarDias(ano, mes, dia)
{
var valMes, valAno, indiceCbo, i, n, cboAno, cboMes, cboDia, carMes

cboDia=document.getElementById(dia)
cboMes=document.getElementById(mes)
cboAno=document.getElementById(ano)

//se eliminan todos los elementos del combo 'Día'
n=cboDia.options.length
for (i=n-1; i>=0; i--)
cboDia.options[i] = null

//se llena el combo 'Día' con valores del 1 al 28
for (i=1; i<=28; i++)
cboDia.options[i-1]=new Option (String(i),String(i))//String() para
convertir en cadena un número

//se obtiene el valor del mes
indiceCbo=cboMes.selectedIndex//índice de la opción seleccionada
valMes=parseInt(cboMes.options[indiceCbo].value) //parseInt() para
convertir en número una cadena

//se obtiene el valor del año
indiceCbo=cboAno.selectedIndex //índice de la opción seleccionada
valAno=parseInt(cboAno.options[indiceCbo].value)

i=29
if (valMes==2) //si el mes es febrero
{
if (esBisiesto(valAno)) //si el año es biciesto
//se agrega 1 días más al combo 'Día' para que llegue a 29
cboDia.options[i-1]=new Option (String(i),String(i))
}
else if ((valMes%2==0||valMes>=8)&&(valMes%2!=0||valMes<=7 )) //si el
mes es abril, junio, septiembre o noviembre
{
//se agregan 2 días más al combo 'Día' para que llegue a 30
for (i=29; i<=30; i++)
cboDia.options[i-1]=new Option (String(i),String(i))
}
else if ((valMes%2!=0&&valMes<8)||(valMes%2==0&&valMes>7)) //si el
mes es enero, marzo, mayo, julio, agosto, octubre o diciembre
{
//se agregan 3 días más al combo 'Día' para que llegue a 31
for (i=29; i<=31; i++)
cboDia.options[i-1]=new Option (String(i),String(i))
}
}

y en mi página php coloqué tres combos, uno para el año, uno para el mes y otro para el día... el combo del mes depende del combo del año:

</font><font color="#003366" size="2" face="Arial, Helvetica, sans-serif">A&ntilde;o:
<select name="cboAno" id="cboAno" onChange="llenarDias('cboAno','cboMes','cboDia')">
<?php
$ano=date(Y);
if (!isset($Fano))
$Fano=$ano;
for ($i=1900; $i<=$ano; $i++)
{
if ($i==$Fano)
echo '<option value="'.$i.'" selected>'.$i.'</option>';
else
echo '<option value="'.$i.'">'.$i.'</option>';
}
?>
</select>
Mes:
<select name="cboMes" id="cboMes" onChange="llenarDias('cboAno','cboMes','cboDia')">
<?php
$mes=date(n);
if (!isset($Fmes))
$Fmes=$mes;
?>
<option value="1" <?php echo (($Fmes=="1")?"selected":"") ?> >Enero</option>
<option value="2" <?php echo (($Fmes=="2")?"selected":"") ?> >Febrero</option>
<option value="3" <?php echo (($Fmes=="3")?"selected":"") ?> >Marzo</option>
<option value="4" <?php echo (($Fmes=="4")?"selected":"") ?> >Abril</option>
<option value="5" <?php echo (($Fmes=="5")?"selected":"") ?> >Mayo</option>
<option value="6" <?php echo (($Fmes=="6")?"selected":"") ?> >Junio</option>
<option value="7" <?php echo (($Fmes=="7")?"selected":"") ?> >Julio</option>
<option value="8" <?php echo (($Fmes=="8")?"selected":"") ?> >Agosto</option>
<option value="9" <?php echo (($Fmes=="9")?"selected":"") ?> >Septiembre</option>
<option value="10" <?php echo (($Fmes=="10")?"selected":"") ?> >Octubre</option>
<option value="11" <?php echo (($Fmes=="11")?"selected":"") ?> >Noviembre</option>
<option value="12" <?php echo (($Fmes=="12")?"selected":"") ?> >Diciembre</option>
</select>
D&iacute;a:
<select name="cboDia" id="cboDia" >
<?php
$dia=date(j); //día del mes actual
$dias=date(t); //número de días del mes actual
if (!isset($Fdia))
$Fdia=$dia;
for ($i=1; $i<=$dias; $i++)
{
if ($i==$Fdia)
echo '<option value="'.$i.'" selected>'.$i.'</option>';
else
echo '<option value="'.$i.'">'.$i.'</option>';
}
?>
</select>
  #15 (permalink)  
Antiguo 19/04/2006, 16:57
 
Fecha de Ingreso: abril-2005
Ubicación: colombia
Mensajes: 242
Antigüedad: 19 años
Puntos: 0
son dos paginas una js y otra php y como hago para llamar a la js desde php
__________________
:aplauso: Ivomat
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:52.