Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Insertar dias en un Arreglo!

Estas en el tema de Insertar dias en un Arreglo! en el foro de PHP en Foros del Web. Hola! Soy totalmente nueva en esto de la programacion :$ y agradeceria si pudieran echarme la mano con esta duda... necesito crear un arreglo con ...
  #1 (permalink)  
Antiguo 28/06/2013, 17:04
Avatar de perla_marina  
Fecha de Ingreso: mayo-2013
Mensajes: 31
Antigüedad: 11 años, 5 meses
Puntos: 2
Pregunta Insertar dias en un Arreglo!

Hola!
Soy totalmente nueva en esto de la programacion :$
y agradeceria si pudieran echarme la mano con esta duda...

necesito crear un arreglo con 30 dias consecutivos apartir del dia actual,
como hoy es 28
mi arreglo debe quedar algo asi:
(28,29,30,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,1 7,18,19,20,21,22,23,24,25,26,27)

alguna idea?

Muchas Gracias
  #2 (permalink)  
Antiguo 28/06/2013, 17:30
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 6 meses
Puntos: 2534
Respuesta: Insertar dias en un Arreglo!

Cita:
alguna idea?
Sí, consulta el manual, en la sección de funciones para fechas y hora, seguramente encuentras algo de utilidad.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 28/06/2013, 17:33
Avatar de Reedyseth  
Fecha de Ingreso: enero-2009
Ubicación: Chihuahua, México
Mensajes: 419
Antigüedad: 15 años, 9 meses
Puntos: 36
Respuesta: Insertar dias en un Arreglo!

No olvides tomar en cuenta los años biciestos, pero creo que las funciones se encargan de eso :p
__________________
Reedyseth
Te ayudo? No olvides dar un +
blog:http://behstant.com/blog
En el blog:Tutoriales de Desarrollo Web PHP, Javascript, BD y más.
  #4 (permalink)  
Antiguo 28/06/2013, 17:35
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 6 meses
Puntos: 292
Respuesta: Insertar dias en un Arreglo!

Podria empezar asi

Código PHP:
<?php

date_default_timezone_set
('America/Bogota');

// Cuantos dias tiene... Febrero ?
function dias_mes($month$year) {
   return 
date("d",mktime(0,0,0,$month+1,0,$year));
}

// fecha en formato "dd-mm-aaaa"
$hoy date('d-m-Y');
$en_28 date('d-m-Y'strtotime($hoy' + 28 days'));

echo 
$en_28;
// Rellenar hasta ese dia 

$dia_actual date('d');
$ano_actual date('Y');
$mes_actual date('m');

list (
$dia_en_28,$mes_en_28,$ano_en_28) = explode('-',$en_28);

if (
$mes_actual==$mes_en_28)
{
   
// mismo mes
   
for ($d=$dia_actual;$d<=$dia_en_28;$d++){
       
$dias[] = (int) $d;
   }
}else{
   
// mes siguiente
   
$ultimo_dia_mes dias_mes($mes_actual,$ano_actual);
   for (
$d=$dia_actual;$d<=$ultimo_dia_mes;$d++){
       
$dias[] = (int) $d;
   }
   for (
$d=1;$d<=$dia_en_28;$d++){
       
$dias[] = (int) $d;
   }
}

var_dump($dias);
Salida:

Cita:
26-07-2013
array (size=29)
0 => int 28
1 => int 29
2 => int 30
3 => int 1
4 => int 2
5 => int 3
6 => int 4
7 => int 5
8 => int 6
9 => int 7
10 => int 8
11 => int 9
12 => int 10
13 => int 11
14 => int 12
15 => int 13
16 => int 14
17 => int 15
18 => int 16
19 => int 17
20 => int 18
21 => int 19
22 => int 20
23 => int 21
24 => int 22
25 => int 23
26 => int 24
27 => int 25
28 => int 26

Obviamente esta muy chancho asi... toca encapsular eso en una clase o funcion al menos...... no use nada exclusivo de PHP 5.3 por compatiblidad

Version encapsulada:

Código PHP:
<?php

date_default_timezone_set
('America/Bogota');

var_dump(dias_plus28(4,10,2013));

/**
 * @param int  dia 
 * @param int  mes 
 * @param int  ano
 * @return array
 */
function dias_plus28($dia_inicio=null,$mes_inicio=null,$ano_inicio=null){

if (
$dia_inicio==null and $mes_inicio==null and $ano_inicio==null){    
    
$dia_inicio date('d');
    
$mes_inicio date('m');
    
$ano_inicio date('Y');
    
$inicio"$dia_inicio-mes_inicio-ano_inicio";

}else   
    
$inicio =  date('d-m-Y',mktime(0,0,0,$mes_inicio,$dia_inicio,$ano_inicio)); // hoy


$en_28 date('d-m-Y'strtotime($inicio' + 28 days'));


list (
$dia_en_28,$mes_en_28,$ano_en_28) = explode('-',$en_28);

if (
$mes_inicio==$mes_en_28)
{
   
// mismo mes
   
for ($d=$dia_inicio;$d<=$dia_en_28;$d++){
       
$dias[] = (int) $d;
   }
   
}else{
   
// mes siguiente
   
$ultimo_dia_mes dias_mes($mes_inicio,$ano_inicio);
   
   for (
$d=$dia_inicio;$d<=$ultimo_dia_mes;$d++){ 
       
$dias[] = (int) $d;
   }
   for (
$d=1;$d<=$dia_en_28;$d++){
       
$dias[] = (int) $d;
   }
}

return 
$dias;
}

// Cuantos dias tiene... Febrero ? (anonima)
function dias_mes($month$year
{
   return 
date("d",mktime(0,0,0,$month+1,0,$year));
}
__________________
Salu2!

Última edición por Italico76; 29/06/2013 a las 09:15
  #5 (permalink)  
Antiguo 05/07/2013, 14:23
Avatar de perla_marina  
Fecha de Ingreso: mayo-2013
Mensajes: 31
Antigüedad: 11 años, 5 meses
Puntos: 2
Respuesta: Insertar dias en un Arreglo!

Muchas Gracias a todos por su ayuda!

la manera al final como lo resolvi
fue asi jejej porque ocupa excluir los sabados y domingos!


////ARREGLO FECHA///////
$fecha1 =date("Y-m-d D");

$fecha2 = strtotime ( '+30day' , strtotime ( $fecha1 ) ) ;
$fecha2 = date ( 'Y-m-d D' , $fecha2 );

while($fecha1<=$fecha2){

if((stripos($fecha1,'Sun') == false) && (stripos($fecha1,'Sat') == false)){
$dias[]=$fecha1;
}

$fecha1 = strtotime ( '+1 day' , strtotime ( $fecha1 ) ) ;
$fecha1 = date ( 'Y-m-d D' , $fecha1 );
}

Etiquetas: arreglos
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 01:06.