Foros del Web » Programando para Internet » PHP »

Obtener fecha del primer dia de la semana o primer dia del mes apartir de una fecha

Estas en el tema de Obtener fecha del primer dia de la semana o primer dia del mes apartir de una fecha en el foro de PHP en Foros del Web. Hola amigos de ForosdelWeb hoy me surge esta necesidad: Necesito presentar unos informe de ventas en PHP, informe semanal y mensual, lo que hago es: ...
  #1 (permalink)  
Antiguo 19/10/2011, 18:24
Avatar de anacona16  
Fecha de Ingreso: marzo-2010
Ubicación: Bogota DC
Mensajes: 610
Antigüedad: 14 años, 8 meses
Puntos: 52
Obtener fecha del primer dia de la semana o primer dia del mes apartir de una fecha

Hola amigos de ForosdelWeb hoy me surge esta necesidad: Necesito presentar unos informe de ventas en PHP, informe semanal y mensual, lo que hago es:

Consulto fecha actual y con la funcion strtotime le resto -6 al dia obtenida de la fecha actual para obtener los 7 dias de la semana.

Pero resulta que si hoy es martes le resto 6 entonces me da miercoles pero de la semana pasada, pero resulta que esos dias hacen parte de la semana pasada, osea otro informe.

No se si me haya explicado bien, no digo que me hagan todo solo quiero saber si existe una funcion especifica para esto, y si es asi que me digan cual es.

Gracias.
__________________
Aprendiendo!!!
  #2 (permalink)  
Antiguo 19/10/2011, 19:20
daz
 
Fecha de Ingreso: julio-2001
Ubicación: Bogota
Mensajes: 341
Antigüedad: 23 años, 4 meses
Puntos: 4
Respuesta: Obtener fecha del primer dia de la semana o primer dia del mes apartir de

La verdad no entiendo la pregunta, podriasa explicar un poco mejor...
  #3 (permalink)  
Antiguo 20/10/2011, 00:51
 
Fecha de Ingreso: octubre-2011
Mensajes: 13
Antigüedad: 13 años, 1 mes
Puntos: 2
Respuesta: Obtener fecha del primer dia de la semana o primer dia del mes apartir de

Lo que debes hacer es usando la función "date" de PHP saber en que día de la semana estás, y a partir de ahí restar para llegar hasta el Lunes y saber que fecha es el lunes de esa semana.

PM si necesitas ayuda.

Saludos,
  #4 (permalink)  
Antiguo 20/10/2011, 01:36
Avatar de azimutisima  
Fecha de Ingreso: mayo-2011
Mensajes: 107
Antigüedad: 13 años, 5 meses
Puntos: 14
Respuesta: Obtener fecha del primer dia de la semana o primer dia del mes apartir de

Mira te dejo un ejemplo:

http://www.diegodicamillo.com.ar/blog/2010/02/05/obtener-el-dia-de-la-semana-con-php/

Con esa funcion lo unico que tienes que hacer es como comenta markscutts restar dias hasta el lunes y obtener el listado a partir de ahi...

Espero te sirva.

Si tienes dudas mejor en el foro que por PM.
  #5 (permalink)  
Antiguo 20/10/2011, 01:57
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Obtener fecha del primer dia de la semana o primer dia del mes apartir de

Algo así
Código PHP:
Ver original
  1. <?php
  2. $date = new DateTime('2011-10-17');
  3. if($date->format('l') != 'Monday'){
  4.     $date->modify('Last Monday');
  5. }
  6. echo $date->format('Y-m-d'); // 2011-10-17
  7.  
  8.  
  9. $date = new DateTime('2011-10-16');
  10. if($date->format('l') != 'Monday'){
  11.     $date->modify('Last Monday');
  12. }
  13. echo $date->format('Y-m-d'); // 2011-10-10
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 20/10/2011, 05:42
Avatar de azimutisima  
Fecha de Ingreso: mayo-2011
Mensajes: 107
Antigüedad: 13 años, 5 meses
Puntos: 14
Respuesta: Obtener fecha del primer dia de la semana o primer dia del mes apartir de

Mucho mas elegante sin duda!!! ¿Hay alguna función que no tenga ya hecha php?!!!!! Alucino.

Como aporte, investigando la funcion me encontre con esto:

Código PHP:
Ver original
  1. $dt = new DateTime("12 May 2011");
  2. $days = (int)$dt->format('N') - 1;
  3. $dt->modify("-{$days} days");

Es un codigo alternativo (no lo probe) que puedes usar si te da problemas modify('Last Monday')

Visto aqui -> http://stackoverflow.com/questions/5980540/find-the-date-of-a-monday-based-on-date-of-another-day-in-php
  #7 (permalink)  
Antiguo 20/10/2011, 18:37
Avatar de anacona16  
Fecha de Ingreso: marzo-2010
Ubicación: Bogota DC
Mensajes: 610
Antigüedad: 14 años, 8 meses
Puntos: 52
Respuesta: Obtener fecha del primer dia de la semana o primer dia del mes apartir de

Cita:
Iniciado por abimaelrc Ver Mensaje
Algo así
Código PHP:
Ver original
  1. <?php
  2. $date = new DateTime('2011-10-17');
  3. if($date->format('l') != 'Monday'){
  4.     $date->modify('Last Monday');
  5. }
  6. echo $date->format('Y-m-d'); // 2011-10-17
  7.  
  8.  
  9. $date = new DateTime('2011-10-16');
  10. if($date->format('l') != 'Monday'){
  11.     $date->modify('Last Monday');
  12. }
  13. echo $date->format('Y-m-d'); // 2011-10-10
Excelente justo lo que buscaba... gracias...

Pero y resulta que si tengo que hacer un reporte mensual como haria para obtener el primer dia de ese mes? El codigo solo habla de dias de semana...

Gracias
__________________
Aprendiendo!!!
  #8 (permalink)  
Antiguo 20/10/2011, 19:16
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: Obtener fecha del primer dia de la semana o primer dia del mes apartir de

No se supone que el primer día del mes siempre es 01? ¿Qué es lo que necesitas realmente? Aún así el pobre PHP tiene código para todo

Código PHP:
Ver original
  1. <?php
  2. $dt = new DateTime('2011-10-17');
  3. $dt->modify('first day of this month');
  4. echo $dt->format('Y-m-d'); //2011-10-01

PD: Necesita PHP 5.3+

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

Etiquetas: dia, fecha, primer, semana
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 06:09.