Definir 14 cena

Iniciado por RedZer, 14 Junio 2011, 20:42 PM

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

RedZer

no tengo idea de como hacer lo siguiente  tengo un campo de texto en donde digito una fecha y lo guardar en la bd supongamos que la fecha guardada es 2011-01-05 hoy estamos a 2011-06-14 por lo cual han pasado un aproximado de 12 catorcenas yo lo que deceo hacer es tener un formulario en donde me aroje las fechas en el que fue catorcena y el numero de catorcena en el que vamos apartir de la fecha definida algo asi

 




No de catrocena   fecha
12011-01-05
22011-01-19
32011-02-02
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo

Shell Root

#1
Pues es cosas de sumarle 14 días, no?.

Código (sql) [Seleccionar]
ADDDATE(date, INTERVAL expr type), ADDDATE(expr, days)

Código (sql) [Seleccionar]
mysql> SELECT DATE_ADD('1998-01-02', INTERVAL 31 DAY);
        -> '1998-02-02'
mysql> SELECT ADDDATE('1998-01-02', INTERVAL 31 DAY);
        -> '1998-02-02'
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

RedZer

#2
Cita de: Shell Root en 14 Junio 2011, 21:20 PM
Pues es cosas de sumarle 14 días, no?.

Código (sql) [Seleccionar]
ADDDATE(date, INTERVAL expr type), ADDDATE(expr, days)

Código (sql) [Seleccionar]
mysql> SELECT DATE_ADD('1998-01-02', INTERVAL 31 DAY);
       -> '1998-02-02'
mysql> SELECT ADDDATE('1998-01-02', INTERVAL 31 DAY);
       -> '1998-02-02'

asi es shell root es cosa de sumarle 14 dias ala fecha que tengo guardada en mi tabla eso si se de echo tengo esta funcion que ocupo para sumar dias o en su defecto restar dias auna fecha

Código (php) [Seleccionar]

<?php
function sumar_dias($fecha,$dias,$suma=1){
    
$exp explode("-",$fecha);
    
$mon $exp[1];
    
$day = (strlen($exp[2]) > 2)? $exp[0] : $exp[2];
    
$year = (strlen($exp[0]) < 4)? $exp[2] : $exp[0];
    
$mktime mktime(0,0,0,$mon,$day,$year);
    if(
$suma == 1){
        
$rs $mktime + ($dias 24 60 60);
    }else{
        
$rs $mktime - ($dias 24 60 60);
    }
    
$fecha = (strlen($exp[2]) > 2)? date("d-m-Y",$rs) : date("Y-m-d",$rs);
    return 
$fecha;
}

//forma de utilizarla
//el primer argumento es la fecha
//si pones una fecha al estilo inglés yyyy-mm-dd te devuelve con el mismo estilo
//y si pones una fecha al estilo español te la devuelve en español
//el segundo argumento es la cantidad de dias que quieras sumar o restar
//el tercer argumento es para decirle que operación realizar sumar o restar
//por defecto está en 1 (sumar) y 0 (restar)
echo sumar_dias(date('2011-01-05'),14,1);
?>




pero lo que yo deceo hacer es  que apartir de esta fecha inicial 2011-01-05 me diga cuantas catorcenas han pasado desde la fecha inicial que se esta en la bd hasta el dia de hoy 2011--06-14 y en que fecha fue si me explico??
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo

Shell Root

Simple...

FechaIniciar = FI
FechaFinal   = FF

Realizas un ciclo, mientras qué FI + 14, sea menor a FF.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

RedZer

#4
ise lo que me indicaste tengo lo siguiente
Código (php) [Seleccionar]



$fecha1="2011-01-01";
$fecha2="2011-02-30";

for($fechaini=$fecha1;$fechaini<$fecha2;$fechaini++) {
$dias=14;
$total= date("Y-m-d",strtotime("$fechaini+$dias days"));
echo  $total."<br>";
}



como puedo hacer para que nada mas me aroje la fecha en que cae 14 por ejemplo si empiesa del 2011-01-01 a contar el la fecha que me tendria que arojar seria 2011-01-14 y la siguiente seria 2011-01-28 y asi sucesivamente
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo

RedZer

por fin lo resolvi dejo el code

Código (php) [Seleccionar]

$inicio=strtotime('2011-01-05');
$final=strtotime('2011-02-02');
while($inicio <= $final) {
echo  date("Y-m-d", $inicio)."<br>";
$inicio= strtotime("+14 day", $inicio); }



gracias shell root por la idea
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo

WHK

Por eso soy partidario de usar int en las fechas de la base de datos obtenidas con time(), asi hubieras procesado todo directamente como integers sumando y dividiendo y obteniendo datos directamente desde la db.