Foros del Web » Programando para Internet » PHP »

Tomar fecha de textbox y sumarle 30 días e imprimir el resultado en otro textbox

Estas en el tema de Tomar fecha de textbox y sumarle 30 días e imprimir el resultado en otro textbox en el foro de PHP en Foros del Web. Saludos a tod@s. por este medio les solicito ayuda para resolver un problemita que se me está haciendo grande y consiste en: Un sistema basico ...
  #1 (permalink)  
Antiguo 18/10/2012, 16:21
 
Fecha de Ingreso: octubre-2012
Ubicación: El Salvador
Mensajes: 14
Antigüedad: 11 años, 6 meses
Puntos: 0
Tomar fecha de textbox y sumarle 30 días e imprimir el resultado en otro textbox

Saludos a tod@s.

por este medio les solicito ayuda para resolver un problemita que se me está haciendo grande y consiste en:
Un sistema basico de planillas en php, donde debo declarar 2 fechas (1 inicial y la 2 es la final) pero con la peculiaridad que debo tomar la primer fecha desde un calendario popup de java. y una vez seleccionada la fecha automaticamente en el campo de la segunda fecha debe sumarce 30 días partiendo de la primera.

Por lo tanto: como puedo tomar el valor de la primera fecha sin enviar el formulario y sumarle 30 días a esa fecha e imprimirla en la segunda fecha automaticamente??

de antemano gracias por su tiempo.
  #2 (permalink)  
Antiguo 18/10/2012, 18:13
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Tomar fecha de textbox y sumarle 30 días e imprimir el resultado en otro t

Bienvenido,
Supongo que el popup es en javascript, no java, son cosas distintas.

La verdad que no tengo idea de como relacionar un dato que tomas de un popup, o sea de un documento totalmente diferente para luego sumarle a ese 30, y así obtener la 2da fecha.
Si no fuera la primera fecha en un popup, sería mas fácil porque estaría dentro del unico documento que vas a usar, por lo tanto podrías usar el DOM ( Document Object Model ) para capturar ese valor y sumarle 30 como tenes que hacer, pero bueno veamos que dicen los demas.
  #3 (permalink)  
Antiguo 18/10/2012, 22:27
 
Fecha de Ingreso: octubre-2012
Ubicación: El Salvador
Mensajes: 14
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Tomar fecha de textbox y sumarle 30 días e imprimir el resultado en otro t

Gracias por la correccion... si es javaScript.
el detalle de ocupar ese calendario popup es por que no siempre se selecciona la fecha actual. ese popup me arroja el valor de la fecha segun el formato yyyy/mm/dd, (formato de fecha de Mysql) y necesito sumarle dias a esa fecha. para luego mostrarla en el textbox siguiente. y posteriormente registrarlo en la base de Mysql.

Tu mencionas el Dom.
ni idea de como poder hacer algo similar o parecido al calendario.

Gracias..
  #4 (permalink)  
Antiguo 19/10/2012, 08:38
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 13 años, 11 meses
Puntos: 66
Respuesta: Tomar fecha de textbox y sumarle 30 días e imprimir el resultado en otro t

supongo que cuando hagas click en alguna fecha, habrá algun input oculto que será modificado con el valor de la fecha seleccionada

si es asi puedes ponerle un onupdate al input y que este llame a una función que haga todo eso,

pero si por ahora eres capaz de conseguir hacer saltar un alert con el valor de la fecha pulsada al hacer click ya habrás avanzado al siguiente paso

y ya de paso nos dices como formatea la fecha porque según la escriba el habrá que tratarlo de una forma u otra
  #5 (permalink)  
Antiguo 19/10/2012, 09:40
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 13 años, 11 meses
Puntos: 66
Respuesta: Tomar fecha de textbox y sumarle 30 días e imprimir el resultado en otro t

vale que no habia visto que si que habias puesto como formatea la fecha


si haces alco como


function obtener(){
var valor=document.GetElementById('inputfecha').value//Esto miralo que no recuerdo ahora muy biel cual era la funcion exacta pero algo asi era, no se exacto si con .text .value o .innerHTML
var separado = valor.split('/');
//ahora en separado[0] tendras el año en separado[1] el dia y en separado[2] el mes
}
y ya solo tienes que sumarle 30 dias teniendo en cuenta los meses de 30 de 31 los años bisiestos.... y que casi siempre pasaras de mes, no se si javascript tendrá algo como el mkdate de php o puede trabajar con unix timestamps que vienen bastante bien
  #6 (permalink)  
Antiguo 19/10/2012, 22:29
 
Fecha de Ingreso: octubre-2012
Ubicación: El Salvador
Mensajes: 14
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Tomar fecha de textbox y sumarle 30 días e imprimir el resultado en otro t

Cita:
Iniciado por juanito1712 Ver Mensaje
vale que no habia visto que si que habias puesto como formatea la fecha


si haces alco como


function obtener(){
var valor=document.GetElementById('inputfecha').value//Esto miralo que no recuerdo ahora muy biel cual era la funcion exacta pero algo asi era, no se exacto si con .text .value o .innerHTML
var separado = valor.split('/');
//ahora en separado[0] tendras el año en separado[1] el dia y en separado[2] el mes
}
y ya solo tienes que sumarle 30 dias teniendo en cuenta los meses de 30 de 31 los años bisiestos.... y que casi siempre pasaras de mes, no se si javascript tendrá algo como el mkdate de php o puede trabajar con unix timestamps que vienen bastante bien

Saludos a todos.

Aprecio mucho su aporte y lo he resuelto de forma parecida.
a continuacion como lo hice:
en el head
Código PHP:
<script type="text/javascript">
function 
aumenta(frm) {
  
num=14;
  
f=frm.fecInicio.value;
  
// pasaremos la fecha a formato mm/dd/yyyy
  
f=f.split('/');
  
f=f[1]+'/'+f[0]+'/'+f[2];
  
//
  
hoy=new Date(f);
  
hoy.setTime(hoy.getTime()+num*24*60*60*1000);
  
mes=hoy.getMonth()+1;
  if(
mes<9mes='0'+mes;
  
fecha=hoy.getDate()+'/'+mes+'/'+hoy.getFullYear();
  
frm.total.value=fecha;  
}
</script> 
y en el formulario lo siguiente:
Código PHP:
<td><B>Desde</td>
   <
td>
   <
SCRIPT LANGUAGE="JavaScript" ID="js1">
var 
cal1 = new CalendarPopup();
</SCRIPT>
<!-- The next line prints out the source in this example page. It should not be included when you actually use the calendar popup code -->
<SCRIPT LANGUAGE="JavaScript">writeSource("js1");</SCRIPT>
<input type="text" name="fecInicio" /><A HREF="#" onClick="cal1.select(document.forms[0].fecInicio,'anchor','dd/MM/yyyy'); return false;" TITLE="cal1.select(document.forms[0].fecInicio,'anchor','dd/MM/yyyy'); return false;" NAME="anchor" ID="anchor">Seleccionar Fecha</A>
</td>
</tr>
<td><B>Hasta</td>
     <td><input type="text" name="total" onclick="aumenta(this.form)" /></td>
   </td>
    </tr>
        </table> 
El Script que está en medio del formulario manda a llamar un archivo .js que es formulario y luego de tomar la fecha la coloca en el textbox.
y oculto bajo el atributo onChange que realice la operacion del script que está en head. y me funciona muy bien.

y a la hora de guardar en la base en el archivo insert.php
tengo como convertir la fecha:
Código PHP:
// se captura el valor enviado por el formulario. y se le asigna una variable para su manejo
$fecha_original "$_POST[fecInicio]";
$FechaMySQL implode'-'array_reverseexplode'/'$fecha_original ) ) ) ;

$fecha_original2 "$_POST[total]";
$FechaMySQL2 implode'-'array_reverseexplode'/'$fecha_original2 ) ) ) ;
//la variable que contiene la fecha segun el formato de Mysql son $fecha_original /2. 
  #7 (permalink)  
Antiguo 19/10/2012, 22:44
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: Tomar fecha de textbox y sumarle 30 días e imprimir el resultado en otro t

Cita:
Iniciado por Chevy1975 Ver Mensaje
Saludos a todos.


y a la hora de guardar en la base en el archivo insert.php
tengo como convertir la fecha:
Código PHP:
// se captura el valor enviado por el formulario. y se le asigna una variable para su manejo
$fecha_original "$_POST[fecInicio]";
$FechaMySQL implode'-'array_reverseexplode'/'$fecha_original ) ) ) ;

$fecha_original2 "$_POST[total]";
$FechaMySQL2 implode'-'array_reverseexplode'/'$fecha_original2 ) ) ) ;
//la variable que contiene la fecha segun el formato de Mysql son $fecha_original /2. 
Tu forma de convertir tu fecha no esta mal, pero como forma constructiva te recomiendo que utilices esta forma es más fácil y actualizada,.


Ejemplo:

Código PHP:

$fecha 
"01/12/2012";

$fe date("Y-m-d"strtotime($fecha));

//resultado 2012-12-01 

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #8 (permalink)  
Antiguo 19/10/2012, 23:44
 
Fecha de Ingreso: octubre-2012
Ubicación: El Salvador
Mensajes: 14
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Tomar fecha de textbox y sumarle 30 días e imprimir el resultado en otro t

Cita:
Iniciado por skiper0125 Ver Mensaje
Tu forma de convertir tu fecha no esta mal, pero como forma constructiva te recomiendo que utilices esta forma es más fácil y actualizada,.


Ejemplo:

Código PHP:

$fecha 
"01/12/2012";

$fe date("Y-m-d"strtotime($fecha));

//resultado 2012-12-01 

Saludos
Muchas gracias, por el aporte.

haciendo un parentesis sobre la funcion date("Y-m-d")
en otra seccion del mi sistema tomo la fecha actual, y para ello lo utilizo así:
Código PHP:
<input name="fecha" type="text" id="fecha" value="<?php echo date("y/m/d"); ?>

size="10" />
pero lo peculiar es que cuando se llegan las 8 pm del día automaticamente me toma la fecha de mañana..
por lo que me gustaría saber si le hace falta algun atributo para que se mantenga la fecha del día justo las 24 horas.

Es decir:
hoy es 19/10/2012 y aca tengo las 11:35 pm pero en el sistema me toma
que la fecha es 20/10/2012.
  #9 (permalink)  
Antiguo 20/10/2012, 00:16
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: Tomar fecha de textbox y sumarle 30 días e imprimir el resultado en otro t

Hola que tal.

Las pruebas las haces en tu maquina personal o en algún hosting, recuerda que PHP toma la fecha del servido en donde se encuentra alojado , por lo cual debes de configurar el php.ini, si no tienes acceso a ese archivo por cuestión de servicios también lo puedes hace con código php ejemplo

Código PHP:
date_default_timezone_set("America/Mexico_City"); 
Te dejo los parámetros que acepta y documentación necesaria.

http://php.net/manual/es/function.da...mezone-set.php

http://www.php.net/manual/es/timezones.php

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #10 (permalink)  
Antiguo 20/10/2012, 00:45
 
Fecha de Ingreso: octubre-2012
Ubicación: El Salvador
Mensajes: 14
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Tomar fecha de textbox y sumarle 30 días e imprimir el resultado en otro t

hola de nuevo..
Estoy ocupando el XAMPP 1.7.4 en mi PC.
  #11 (permalink)  
Antiguo 20/10/2012, 00:59
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: Tomar fecha de textbox y sumarle 30 días e imprimir el resultado en otro t

Cita:
Iniciado por Chevy1975 Ver Mensaje
hola de nuevo..
Estoy ocupando el XAMPP 1.7.4 en mi PC.
Ya experimentaste lo que te comente de configurar el php.ini o realiza una prueba con:

Código PHP:

echo date("H:i:s d-m-Y); 
y comprueba si existen diferencias, de lo contrario debes de tomar la opción de crear una clase o función para obtener la diferencia de tiempo que te genera, de esa forma tendrás mas controlado y evitar ese error.

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125

Etiquetas: fecha, formulario, textbox, tomar, resultados
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 06:31.