Foros del Web » Programando para Internet » PHP »

Cuantas semanas hay entre dos fechas

Estas en el tema de Cuantas semanas hay entre dos fechas en el foro de PHP en Foros del Web. Quiero saber cuantas semanas hay entre dos fechas Estoy buscando una funcion en PHP o MySQL que me regrese el numero de semanas que hay ...
  #1 (permalink)  
Antiguo 27/11/2003, 21:16
Avatar de ruxee
Usuario no validado
 
Fecha de Ingreso: agosto-2002
Ubicación: USA
Mensajes: 131
Antigüedad: 21 años, 7 meses
Puntos: 7
Cuantas semanas hay entre dos fechas

Quiero saber cuantas semanas hay entre dos fechas

Estoy buscando una funcion en PHP o MySQL que me regrese el numero de semanas que hay entre dos fechas.

Alguien sabe como hacerlo?
  #2 (permalink)  
Antiguo 27/11/2003, 21:44
 
Fecha de Ingreso: octubre-2003
Mensajes: 37
Antigüedad: 20 años, 5 meses
Puntos: 0
date ("W",$fecha2) - date("W",$fecha1);

  #3 (permalink)  
Antiguo 27/11/2003, 21:46
 
Fecha de Ingreso: octubre-2003
Mensajes: 37
Antigüedad: 20 años, 5 meses
Puntos: 0
Solo ten cuidado con los saltos de año... ya que pasas del 52 al 1, así que deberás ingeniartelas para esos casos...

TIP: if ($primeraSemana > $segundaSemana)...

Salud!!!
  #4 (permalink)  
Antiguo 27/11/2003, 23:35
Avatar de ruxee
Usuario no validado
 
Fecha de Ingreso: agosto-2002
Ubicación: USA
Mensajes: 131
Antigüedad: 21 años, 7 meses
Puntos: 7
No me funcionó

Gracias Nancy,

Pero no me funcionó... el script que uso es:

$sql = "select fecha_ing from proyecto where id_proy=26;";
$result = mysql_query("$sql");
$row=mysql_fetch_array($result);

$hoy= date("Y-m-d");
$ing= date($row["fecha_ing"]);
echo $hoy.'<br>'.$ing.'<br>';
echo date("W",$hoy)-date("W",$ing);



No habra manera de ver el codigo de la fecha de hoy y el codigo numerico de la fecha que estoy sacando de la base de datos? asi lo puedo dividir dentro de 7 y asi me sale el entero de las semanas que hay?
  #5 (permalink)  
Antiguo 27/11/2003, 23:50
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Creo que lo mejor es utilizar funciones como
time()
( http://www.php.net/manual/es/function.time.php )
que está en segundos... luego puedes restarlos y transformas los segundos a semanas... así no habrá problemas con los años ni nada parecido... Cualquier duda... lee el enlace al manual que te puse... y si sigues teniendo dudas... pregunta no más con confianza.

Saludos
  #6 (permalink)  
Antiguo 28/11/2003, 11:25
 
Fecha de Ingreso: octubre-2003
Mensajes: 37
Antigüedad: 20 años, 5 meses
Puntos: 0
Código PHP:

$sql 
"select fecha_ing from proyecto where id_proy=26;";
$result mysql_query("$sql");
$row=mysql_fetch_array($result);

$hoydate("Y-m-d");
$ing$row["fecha_ing"];
echo 
$hoy.'<br>'.$ing.'<br>';
echo 
date("W",strtotime($hoy))-date("W",strtotime($ing)); 
Con eso debe funcionarte
  #7 (permalink)  
Antiguo 28/11/2003, 12:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Se olvidan del SQL ... Sobre todo si trabajas con campos DATE o DateTIME. Tienen la funcion DATEDIFF() que devuelve los dias de diferencia si quieres semanas .. divide por 7 :

http://www.mysql.com/doc/en/Date_and...functions.html

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 28/11/2003, 14:09
 
Fecha de Ingreso: octubre-2003
Mensajes: 37
Antigüedad: 20 años, 5 meses
Puntos: 0
select yearweek(now()) - yearweek(campoFecha) as semanas

Desde MySQL, como acertadamente dice Cluster.

  #9 (permalink)  
Antiguo 28/11/2003, 18:09
Avatar de ruxee
Usuario no validado
 
Fecha de Ingreso: agosto-2002
Ubicación: USA
Mensajes: 131
Antigüedad: 21 años, 7 meses
Puntos: 7
Ese me sirvio mucho, justo para lo que busco... mil gracias tios...
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 02:10.