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 |
1 | 2011-01-05 |
2 | 2011-01-19 |
3 | 2011-02-02 |
Pues es cosas de sumarle 14 días, no?.
ADDDATE(date, INTERVAL expr type), ADDDATE(expr, days)
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'
Cita de: Shell Root en 14 Junio 2011, 21:20 PM
Pues es cosas de sumarle 14 días, no?.
ADDDATE(date, INTERVAL expr type), ADDDATE(expr, days)
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
<?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??
Simple...
FechaIniciar = FI
FechaFinal = FF
Realizas un ciclo, mientras qué FI + 14, sea menor a FF.
ise lo que me indicaste tengo lo siguiente
$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
por fin lo resolvi dejo el code
$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
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.