Foros del Web » Programando para Internet » PHP »

Proximo mes

Estas en el tema de Proximo mes en el foro de PHP en Foros del Web. Buenos DIas, Necesito ayuda resulta que necesito saber el proximo mes para asi realizar una consulta, pero cuando la realizo muestra solo 6/2014 y no ...
  #1 (permalink)  
Antiguo 27/05/2014, 08:40
Avatar de JeMaGa  
Fecha de Ingreso: julio-2011
Ubicación: Bogota
Mensajes: 430
Antigüedad: 12 años, 9 meses
Puntos: 4
Proximo mes

Buenos DIas,

Necesito ayuda resulta que necesito saber el proximo mes para asi realizar una consulta, pero cuando la realizo muestra solo 6/2014 y no 06/2014 que es lo que necesito que muestre.

puede que sea una bobada pero no he podido

Código PHP:
Ver original
  1. $mes = date('m') + 1;
  2. $ano= date('Y')

pero al hacer esto no me muestra 06/2014 y es lo qeu necesito que muestre

gracias
  #2 (permalink)  
Antiguo 27/05/2014, 08:55
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: Proximo mes

En tu ejemplo ya tiene el mes y el año ya solo te falta unir los resultado de la forma que deseas. y eso lo puedes hacer usando el operador de concatenación. Te remito al manual viene todo bien explicado y con muchos ejemplos: http://www.php.net/manual/es/languag...ors.string.php
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 27/05/2014, 08:56
Avatar de JeMaGa  
Fecha de Ingreso: julio-2011
Ubicación: Bogota
Mensajes: 430
Antigüedad: 12 años, 9 meses
Puntos: 4
Respuesta: Proximo mes

Si pero es que lo que tengo lo muestra 6-2014 y necesito que muestre 06-2014 pero nose como, es decir con el 06 o 07 pero con el 0
  #4 (permalink)  
Antiguo 27/05/2014, 09:04
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: Proximo mes

Alog asi ?

Código PHP:
Ver original
  1. <?php
  2.  
  3. $mes = date('m') + 7;
  4. $ano= date('Y');
  5.  
  6. echo (strlen($mes)==1 ? "0$mes" : $mes).'-'.$ano;
__________________
Salu2!
  #5 (permalink)  
Antiguo 27/05/2014, 09:15
Avatar de JeMaGa  
Fecha de Ingreso: julio-2011
Ubicación: Bogota
Mensajes: 430
Antigüedad: 12 años, 9 meses
Puntos: 4
Respuesta: Proximo mes

Gracias!!
si funciono

Última edición por JeMaGa; 27/05/2014 a las 09:27
  #6 (permalink)  
Antiguo 27/05/2014, 09:33
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Proximo mes

lo mejor es usar las funciones de php como son strtotime ó mktime
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #7 (permalink)  
Antiguo 27/05/2014, 09:43
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: Proximo mes

Código PHP:
Ver original
  1. <?php
  2.  
  3. $mes = date('m') + 7;
  4. $ano= date('Y');
  5.  
  6. echo (strlen($mes)==1 ? "0$mes" : $mes).'-'.$ano;
hubiera sido mejor que lo dejaras pensar, era obvio que solo quería algo para copiar y salir del problema. coincido con eits hacer uso de strtotime o mktime era mejor opción
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #8 (permalink)  
Antiguo 27/05/2014, 10:23
Avatar de JeMaGa  
Fecha de Ingreso: julio-2011
Ubicación: Bogota
Mensajes: 430
Antigüedad: 12 años, 9 meses
Puntos: 4
Respuesta: Proximo mes

La verdad si necesitaba salir del problema por que ya había intentado desde ayer y no me había salido, por eso recurrir al foro, yo se que no solo es copiar y pegar que también hay que pensar, pero me funciono gracias!! ya para la próxima vez se puede acoplar a las nuevas necesidades
  #9 (permalink)  
Antiguo 27/05/2014, 10:42
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Proximo mes

lo mejor es que uses las funciones para que cuando llegue al mes 12 y le sumes 1 tengas de resultado el mes 1 del siguiente año y no 13
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #10 (permalink)  
Antiguo 27/05/2014, 10:59
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: Proximo mes

Cita:
Iniciado por eits Ver Mensaje
lo mejor es que uses las funciones para que cuando llegue al mes 12 y le sumes 1 tengas de resultado el mes 1 del siguiente año y no 13
Estoy de acuerdo...... en fin... asi funciona:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $inc = 30; // meses a sumar
  4.  
  5. $mes = (date('m') +$inc) % 12;
  6. $ano= date('Y');
  7.  
  8. echo (strlen($mes)==1 ? "0$mes" : $mes).'-'.$ano;
__________________
Salu2!
  #11 (permalink)  
Antiguo 27/05/2014, 11:16
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Proximo mes

ok, va
Código PHP:
Ver original
  1. echo date("m/Y",mktime(0, 0, 0, date("m")+1, date("d"), date("Y")));
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #12 (permalink)  
Antiguo 27/05/2014, 11:36
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: Proximo mes

vamos solo dos opciones ? hay que facilitarle la tarea a JeMaGa. Asi que, ¿quién da mas ?
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #13 (permalink)  
Antiguo 27/05/2014, 11:46
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Proximo mes

Cita:
Iniciado por hhs Ver Mensaje
vamos solo dos opciones ? hay que facilitarle la tarea a JeMaGa. Asi que, ¿quién da mas ?
en este momeno no se trata de eso, si bien estoy entregando una respuesta no solo es para JeMaGa, tambien lo es para Italico76 para mostrarle que existe una manera mas fácil de obtener el mismo resultado, a demás, el que quiere aprender, lo hará dándole o no la respuesta.
Saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #14 (permalink)  
Antiguo 27/05/2014, 11:58
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: Proximo mes

Cita:
Iniciado por eits Ver Mensaje
en este momeno no se trata de eso, si bien estoy entregando una respuesta no solo es para JeMaGa, tambien lo es para Italico76 para mostrarle que existe una manera mas fácil de obtener el mismo resultado
Pues ami no me esta demostrando nada

Código PHP:
<?php

$inc 
25// meses a sumar
echo (strlen($mes=(date('m') +$inc) % 12)=="0$mes" $mes).'-'.date('Y');
Si es por compactar... estamos casi en las mismas
__________________
Salu2!
  #15 (permalink)  
Antiguo 27/05/2014, 12:35
lolainas
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Proximo mes

Código PHP:
Ver original
  1. echo (new DateTime)->modify('+1 month')->format('m/Y');
  #16 (permalink)  
Antiguo 27/05/2014, 15:34
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Proximo mes

amigo Italico76, no pretendo decir que lo que hiciste este mal, al contrario, es excelente la respuesta pero no se trata de compactar, es decir, si ya existe en php ¿por qué no usarlo?, el mktime sirve precisamente para crear fechas a partir de un punto dado e incluso puede funcionar con horas, min o segundos (aunque este no sea el caso)
y amigo lolainas, esa clase no la conocía, gracias
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #17 (permalink)  
Antiguo 28/05/2014, 11:05
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: Proximo mes

Cita:
Iniciado por lolainas Ver Mensaje
Código PHP:
Ver original
  1. echo (new DateTime)->modify('+1 month')->format('m/Y');
Con los meses que tienen mas días, esto no te va devolver el siguiente mes como esperas:
Cuando llegues a final de este mes el calculo te va dar julio.
Código PHP:
Ver original
  1. //Esto imprime 07/2014
  2. echo (new DateTime('2014-05-31'))->modify('+1 month')->format('m/Y');
Esto es por que junio tiene 30 dias, asi que DateTime corrige el calculo para manejar los 31 dias.

Para obtener el siguiente mes, que es lo que requería JeMeGa debes de usar first day of
Código PHP:
Ver original
  1. echo (new DateTime())->modify('first day of next month')->format('m/Y');
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #18 (permalink)  
Antiguo 28/05/2014, 15:41
lolainas
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Proximo mes

Cita:
Iniciado por hhs Ver Mensaje
Con los meses que tienen mas días, esto no te va devolver el siguiente mes como esperas:
Cuando llegues a final de este mes el calculo te va dar julio.
Código PHP:
Ver original
  1. //Esto imprime 07/2014
  2. echo (new DateTime('2014-05-31'))->modify('+1 month')->format('m/Y');
Esto es por que junio tiene 30 dias, asi que DateTime corrige el calculo para manejar los 31 dias.

Para obtener el siguiente mes, que es lo que requería JeMeGa debes de usar first day of
Código PHP:
Ver original
  1. echo (new DateTime())->modify('first day of next month')->format('m/Y');
Buen dato
  #19 (permalink)  
Antiguo 29/05/2014, 03:25
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Proximo mes

Código PHP:

echo date('m-Y'strtotime("+1 month")); 
Yo habria usado esa solución... pero tb tendría el problema de sumar a fin de mayo... asiq así no deberia fallar:
Código PHP:
echo date('m-Y'strtotime("+1 month"strtotime(date('Y-m-01')))); 
Poco elegante quizás, pero sin usar DateTime (aunq php 5.2 ya lo tienen casi tooodos los servidores!)
__________________
>> Eleazan's Source
>> @Eleazan
  #20 (permalink)  
Antiguo 29/05/2014, 09:20
Avatar de JeMaGa  
Fecha de Ingreso: julio-2011
Ubicación: Bogota
Mensajes: 430
Antigüedad: 12 años, 9 meses
Puntos: 4
Respuesta: Proximo mes

Muchas Gracias por todos los aportes que me dan todos están muy buenos los tendré encuenta, no es para que me faciliten el trabjao hhs, pero para que matarme la cabeza tanto si hay gente mas experta que lo sabe, y así puedo aprender porque no voy a cometer el mismo error, esa parte ya esta solucionada gracias.
  #21 (permalink)  
Antiguo 29/05/2014, 09:23
Avatar de JeMaGa  
Fecha de Ingreso: julio-2011
Ubicación: Bogota
Mensajes: 430
Antigüedad: 12 años, 9 meses
Puntos: 4
Respuesta: Proximo mes

como hago para que la fecha devuelta de la base de datos se muestre (jun 22 2014) , la esta mostrando como la recibe mysql 2014-02-12 puede que sea facil y bobada si me pudieran hacer el favor de colaborarme Gracias
  #22 (permalink)  
Antiguo 29/05/2014, 10:12
Avatar de JeMaGa  
Fecha de Ingreso: julio-2011
Ubicación: Bogota
Mensajes: 430
Antigüedad: 12 años, 9 meses
Puntos: 4
Respuesta: Proximo mes

Gracias ya lo solucione

Etiquetas: Ninguno
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 16:07.