Foros del Web » Programando para Internet » PHP »

duda con date strtotime y variable

Estas en el tema de duda con date strtotime y variable en el foro de PHP en Foros del Web. Hola !!! Tengo una duda de kinder, verán, yo recibo de variable el numero de mes, necesito restarle un mes, luego recibo tambien el año, ...
  #1 (permalink)  
Antiguo 19/12/2013, 15:12
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 9 años, 6 meses
Puntos: 23
duda con date strtotime y variable

Hola !!!


Tengo una duda de kinder, verán, yo recibo de variable el numero de mes, necesito restarle un mes, luego recibo tambien el año, entonces comprobar que si el mes es enero se le reste al año un año



Código PHP:
$mes $_POST['mes'];
$mes_anterior date('m'strtotime('$mes -1 month')); //intente asi pero salio
$anio $_POST['anio'];
$anio_comp $mes==01 date($aniostrtotime('-1 year')) : $anio//esto tampoco funciona 
Ejemplo 1
------------------>
mes = 12
mes_anterior = 11
anio = 2013
anio_comp = 2013

Ejemplo 2
------------------>
mes = 01
mes_anterior = 12
anio = 2014
anio_comp = 2013

Disculpen espero me puedan dar una ayudita

Gracias
  #2 (permalink)  
Antiguo 19/12/2013, 18:59
Avatar de TMeister
Crazy Coder
 
Fecha de Ingreso: enero-2002
Ubicación: En la Oficina
Mensajes: 2.880
Antigüedad: 17 años, 10 meses
Puntos: 193
Respuesta: duda con date strtotime y variable

Prueba esto, a strtotime necesitas pasarle una fecha valida no solo un mes.

Código PHP:
Ver original
  1. $month = '01';
  2. $year = '2012';
  3. // Crea una Fecha valida para convertir.
  4. $dateToCheck = '01-'.$month.'-'.$year;
  5.  
  6. // Fecha normal Output: January 2012
  7. var_dump( date('F Y', strtotime( $dateToCheck )) );
  8.  
  9. // Menos 1 mes Output: December 2011
  10. var_dump( date('F Y', strtotime( $dateToCheck .' -1 month' ) ));
  #3 (permalink)  
Antiguo 20/12/2013, 05:34
 
Fecha de Ingreso: mayo-2009
Ubicación: Japon
Mensajes: 60
Antigüedad: 10 años, 5 meses
Puntos: 12
Respuesta: duda con date strtotime y variable

resta el mes antes de pasar por strtotime

según php es [YYYY-MM-DD], si lo que necesitas es el primer dia del mes es facil


Código PHP:

diffDate
('2013''01''0''1'); // siguiente mes
diffDate('2013''01''0''-1'); // mes anterior

function diffDate($baseYear$baseMonth$diffYear$diffMonth)
{
    
// convertir las variables a numeros
    
$baseMonth    = (int)$baseMonth;
    
$baseYear    = (int)$baseYear;
    
$diffMonth    = (int)$diffMonth;
    
$diffYear    = (int)$diffYear;
    
     
// cambiamos el formato de los meses de 0 a 11
    
$baseMonth--;
    
    
// obtenemos obtenemos la diferencia de mes
    
$tmpMonth $baseMonth $diffMonth;
    
    
// obtenemos la diferencia de año
    
$tmpYear floor($tmpMonth 12);

    
// sumamos la diferencia de año en mese con la diferencia de mes
    
$tmpMonth $tmpMonth abs($tmpYear) * 12;
    
    
// obtenemos el nuevo año
    
$tmpYear $baseYear $diffYear $tmpYear;
    
    
// obtenemos el nuevo mes
    
$tmpMonth $tmpMonth 12;
    
    
    
// volvemos el formato de los meses en ( 1 a 12 )
    
$tmpMonth++;
    
    
    
// cambiamos el formato para que strtotime lo comprenda
    
if($tmpMonth 10)
    {
        
$tmpMonth '0'.$tmpMonth;
    }
    
    return 
strtotime($tmpYear.'-'.$tmpMonth.'-01');

espero que te sirva

Etiquetas: date, strtotime, variable
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:55.