PHP - Dias de la semana

   
Vista:

Dias de la semana

Publicado por Jose (36 intervenciones) el 13/01/2014 16:09:59
Buen día !!

Lo que sucede es que necesito saber de que día a que día va una semana respectiva, pero lo que pasa es que me empieza la semana desde el día martes y me lo finaliza el día lunes.

Acá les dejo el código para que me colaboren Gracias.

$semana=date("W");
$principio=date( "Y-m-d", mktime(0, 0, 0, 0, 31 + (($semana-1)*7) ))."\n";
$final= date( "Y-m-d", mktime(0, 0, 0, 0, 31 + (($semana-1)*7) + 6) )."\n";

Esto es lo que me muestra
14 de Enero del 2014 hasta el 20 de Enero del 2014

Y así debería ser
13 de Enero del 2014 hasta el 19 de Enero del 2014

Gracias por su colaboracion
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Obtener el primer y ultimo día de una semana dada

Publicado por xve (5515 intervenciones) el 13/01/2014 18:58:31
Hola Jose, esto te pasa, porque el primer día del año, no cae en un lunes...

De todas maneras, yo lo aria así:
1
2
3
4
5
6
# obtenemos el dia de la semana contando desde inicio de año
$timestamp = mktime( 0, 0, 0, 1, 1, $year ) + ( $week * 7 * 24 * 60 * 60 );
# le restamos los dias que hay hasta llegar al lunes
$timestamp_for_monday = $timestamp - 86400 * ( date( 'N', $timestamp ) - 1 );
# mostramos la fecha correcta
echo date("Y-m-d",$timestamp_for_monday);

Coméntanos, haber que te parece....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Obtener el primer y ultimo día de una semana dada

Publicado por Jose (36 intervenciones) el 13/01/2014 19:45:46
Todavia sigue igual mostrandome el dia 2014-01-20 en vez de 2014-01-19 que es en lo que termina la semana
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Obtener el primer y ultimo día de una semana dada

Publicado por xve (5515 intervenciones) el 14/01/2014 07:37:48
Hola Jose, se me olvido añadirte el valor de las variables $year y $week, pero a nosotros nos devuelve el dia 20-01-2014!!!

Si copias tal cual el código te tiene que dar el mismo valor...
1
2
3
4
5
6
7
8
9
10
11
<?php
$year=date("Y");
$week=date("W");
 
# obtenemos el dia de la semana contando desde inicio de año
$timestamp = mktime( 0, 0, 0, 1, 1, $year ) + ( $week * 7 * 24 * 60 * 60 );
# le restamos los dias que hay hasta llegar al lunes
$timestamp_for_monday = $timestamp - 86400 * ( date( 'N', $timestamp ) - 1 );
# mostramos la fecha correcta
echo date("Y-m-d",$timestamp_for_monday);
?>

Si no te funciona, muéstranos tu código ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Obtener el primer y ultimo día de una semana dada

Publicado por Jose (36 intervenciones) el 14/01/2014 15:10:34
Amigo lo que esta haciendo ahí esta bien, pero no me esta sacando la fecha de la semana que es, ahí me esta tomando es el inicio de la semana 04 del año en vez de ser la 03 que es en la que nos encontramos.

<?php
$year=date("Y");
$week=date("W");

# obtenemos el dia de la semana contando desde inicio de año
$timestamp = mktime( 0, 0, 0, 1, 1, $year ) + ( $week * 7 * 24 * 60 * 60 );
# le restamos los dias que hay hasta llegar al lunes
$timestamp_for_monday = $timestamp - 86400 * ( date( 'N', $timestamp ) - 1 );
# mostramos la fecha correcta
echo date("Y-m-d",$timestamp_for_monday);
?>

Segun esto el resultado que me muestra es el inicio de la semana 04 que seria 2014-01-20 pero el que deberia sacar es el 2014-01-13 por que esta fecha seria la de la semana 03 como me lo muestra la variable $week

Espero tu respuesta !!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Obtener el primer y ultimo día de una semana dada

Publicado por xve (5515 intervenciones) el 14/01/2014 15:45:48
Hola Jose, tienes toda la razón... te pido disculpas, no me habia dado cuenta....

El problema, esta, en que falta resta el primer dia del año... aqui lo tienes funcionando correctamente en cualquier año:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$year=date("Y");
$week=date("W");
 
# obtenemos el timestamp del primer dia del año
$timestamp = mktime( 0, 0, 0, 1, 1, $year );
 
# sumamos el timestamp de la suma de las semanas actuales
$timestamp += $week * 7 * 24 * 60 * 60;
 
# restamos la posición inicial del primer dia del año
$timestamp -= date("w", mktime(0,0,0,1,1,$year)) * 24 * 60 * 60;
 
# le restamos los dias que hay hasta llegar al lunes
$timestamp_for_monday = $timestamp - 86400 * ( date( 'N', $timestamp ) - 1 );
 
# mostramos la fecha correcta
echo "<br>".date("Y-m-d",$timestamp_for_monday);
?>

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Obtener el primer y ultimo día de una semana dada

Publicado por Jose (36 intervenciones) el 14/01/2014 18:54:15
Si amigo ahora si funciona bien.
Gracias por tu colaboración
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar