Foros del Web » Programando para Internet » PHP »

sumar una fecha de formulario

Estas en el tema de sumar una fecha de formulario en el foro de PHP en Foros del Web. Hola amigos: Otra vez atascado suplico vuestra ayuda. el caso es que tengo un formulario con las opciones para elejir dia mes año y numero ...
  #1 (permalink)  
Antiguo 21/02/2012, 14:07
 
Fecha de Ingreso: diciembre-2009
Mensajes: 47
Antigüedad: 14 años, 4 meses
Puntos: 3
Pregunta sumar una fecha de formulario

Hola amigos:
Otra vez atascado suplico vuestra ayuda.
el caso es que tengo un formulario con las opciones para elejir dia mes año y numero a sumar($sumar).
en el php tiene que recoger las fechas del formulario y sumarlas a la $sumar_dias
y cuando lo hago me salen números ,pero no en formato fecha.
¿como lo hago?
Gracias por anticipado
  #2 (permalink)  
Antiguo 21/02/2012, 14:10
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: sumar una fecha de formulario

Por favor muestra el código para ver donde está el error.

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 23/02/2012, 00:49
 
Fecha de Ingreso: diciembre-2009
Mensajes: 47
Antigüedad: 14 años, 4 meses
Puntos: 3
Respuesta: sumar una fecha de formulario

Cita:
Iniciado por albert2 Ver Mensaje
Hola amigos:
Otra vez atascado suplico vuestra ayuda.
el caso es que tengo un formulario con las opciones para elejir dia mes año y numero a sumar($sumar).
en el php tiene que recoger las fechas del formulario y sumarlas a la $sumar_dias
y cuando lo hago me salen números ,pero no en formato fecha.
¿como lo hago?
Gracias por anticipado
formulario:

<form id="form1" name="form1" method="post" action="result_ovulacion.php">
<table width="100%" border="0" cellpadding="5">
<tr>
<th width="35%" align="left" scope="col">Primer dia del último periodo</th>
<td>Dia</td>
<td><label for="dia"></label>
<select name="dia" id="dia">
<option selected="selected">1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
<option>11</option>
<option>12</option>
<option>13</option>
<option>14</option>
<option>15</option>
<option>16</option>
<option>17</option>
<option>18</option>
<option>19</option>
<option>20</option>
<option>21</option>
<option>22</option>
<option>23</option>
<option>24</option>
<option>25</option>
<option>26</option>
<option>27</option>
<option>28</option>
<option>29</option>
<option>30</option>
<option>31</option>
</select></td>
<td>Mes</td>
<td><label for="mes"></label>
<select name="mes" id="mes">
<option value="Enero">Enero</option>
<option value="Febrero">Febrero</option>
<option value="Marzo">Marzo</option>
<option value="Abril">Abril</option>
<option value="Mayo">Mayo</option>
<option value="Junio">Junio</option>
<option value="Julio">Julio</option>
<option value="Agosto">Agosto</option>
<option value="Septiembre">Septiembre</option>
<option value="Octubre">Octubre</option>
<option value="Noviembre">Noviembre</option>
<option value="Diciembre">Diciembre</option>
</select></td>
</tr>
<tr>
<td><strong>Duración del pediodo en dias</strong></td>
<td><p>&nbsp;</p></td>
<td colspan="3"><select name="dias_ciclo" id="dias_ciclo">
<option selected="selected" value="0">ciclo completo en dias</option>
<option>20</option>
<option>21</option>
<option>22</option>
<option>23</option>
<option>24</option>
<option>25</option>
<option>26</option>
<option>27</option>
<option>28</option>
<option>29</option>
<option>30</option>
<option>31</option>
<option>32</option>
<option>33</option>
<option>34</option>
<option>35</option>
<option>36</option>
<option>37</option>
<option>38</option>
<option>39</option>
<option>40</option>
<option>41</option>
<option>42</option>
<option>43</option>
<option>44</option>
<option>45</option>
</select></td>
</tr>
<tr>
<td>&nbsp;</td>
<td colspan="4">&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td colspan="4"><input type="submit" name="button" id="button" value="Enviar" /> <label for="checkbox"></label></td>
</tr>
<tr>
<td>&nbsp;</td>
<td colspan="4">&nbsp;</td>
</tr>
</table>
</form>

php





<?php

//defino fecha 1
$dia=$_POST['dia'];
$mes=$_POST['mes'];
$ano=date ('Y');
$dias_ciclo=$_POST['dias_ciclo'];
$dia_fertil=($dias_ciclo/2)-2;
$estedia=$dia+$dia_fertil;

$dia = intval($dia);
$mes=intval($mes);
$ano=date ('Y');


//calculamos dia fertil
echo "este dia es el fertil".$estedia."<br>";
echo "dias cicloDiv ...".$dias_ciclo."<br>";



//defino fecha 2
$ano2 = 0;
$mes2 =0;
$dia2=$dias_ciclo/2-2;
echo $dia2."dia 2"."<br/>";
$cero=0;
//calculo timestam de las dos fechas
$timestamp1 = mktime(0,0,0,$mes,$dia,$ano);
$timestamp2 = mktime(4,12,0,$cero,$dia2,$ano);



//resto a una fecha la otra
$segundos_diferencia = $timestamp1 + $timestamp2;
//echo $segundos_diferencia;

//convierto segundos en días
$dias_diferencia = $segundos_diferencia / (60 * 60 * 24);


//obtengo el valor absoulto de los días (quito el posible signo negativo)
$dias_diferencia = abs($dias_diferencia);

//quito los decimales a los días de diferencia
$dias_diferencia = floor($dias_diferencia);

//este sería la fecha resultante , pero no se como cambiarlo de nuevo a fecha
echo $segundos_diferencia;




.
Gracias por anticipado .

Última edición por albert2; 23/02/2012 a las 23:52
  #4 (permalink)  
Antiguo 24/02/2012, 12:08
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: sumar una fecha de formulario

Puedes usar la función date para darle formato a la fecha y strtotime o mktime para sumar dias horas etc... a una fecha timestamp.

No parece muy dificil lo que intentas hacer, pero no conozco tu proceso. Porque no nos explicas más o intentas con la función date.

Código PHP:
Ver original
  1. echo date('d-m-Y', $fecha_timestamp);

para sumar días por ejemplo:

Código PHP:
Ver original
  1. strtotime('+ 20 day', $fecha_timestamp);

Estoy pendiente, cualquier cosa me avisas.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 25/02/2012, 07:41
 
Fecha de Ingreso: diciembre-2009
Mensajes: 47
Antigüedad: 14 años, 4 meses
Puntos: 3
Respuesta: sumar una fecha de formulario

En principio lo tengo solucionado ,creo te mantengo informado gracias

Última edición por albert2; 26/02/2012 a las 04:21
  #6 (permalink)  
Antiguo 26/02/2012, 09:31
 
Fecha de Ingreso: diciembre-2009
Mensajes: 47
Antigüedad: 14 años, 4 meses
Puntos: 3
Respuesta: sumar una fecha de formulario

El código resultante no final porque aún lo tengo que afinar es:
<?php

//defino fecha 1
$dia=$_POST['dia'];
$mes=$_POST['mes'];
$dias_ciclo=$_POST['dias_ciclo'];
$ano=date ('Y');
$estedia=($dias_ciclo/2)-2;

echo " Tu ciclo menstrual comienza el dia " . $dia ." Del mes ". $mes ."<br>";
echo "Y tu ciclo es de " . $dias_ciclo." Dias"."<br>";


//defino fecha 2
$ano2 = $ano;
$mes2 =0;
$dia2=$dias_ciclo/2-2;


//calculo timestam de las dos fechas
$timestamp1 = mktime(0,0,0,$dia,$mes,$ano);



//este sería la fecha resultante

$fecha_cambiada = mktime(0,0,0,date("$mes")-0,date("$dia")+$estedia,date("Y")-0);
$fecha = date("d/m/Y", $fecha_cambiada);
echo $fecha."<br>";



?>
Muchisimas gracias Andrés

Etiquetas: fecha, suma
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 16:00.