Foros del Web » Programando para Internet » PHP »

ayuda con calendarios

Estas en el tema de ayuda con calendarios en el foro de PHP en Foros del Web. buenas tardes me gustaria saber como puedo crear un calendario de forma mu sencilla con table, for,if etc dentro de php con la cosa de ...

  #1 (permalink)  
Antiguo 08/05/2008, 08:25
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 15 años, 11 meses
Puntos: 0
buenas tardes me gustaria saber como puedo crear un calendario de forma mu sencilla con table, for,if etc dentro de php con la cosa de q compruebe la fecha actual y muestre el calendario exo por la tabla con el dia 1 en el dia de la semana q corresponda y asi hasta los dias q tenga ese mes muchas gracias y en espera de noticias, para cualquier cosa o s i me podeis ayudar mediante mi correo aqui os lo dejo [email protected] muchas gracias

alguien Me Puedes Exar Una Mano ¿?¿?

Última edición por GatorV; 08/05/2008 a las 08:50
  #2 (permalink)  
Antiguo 08/05/2008, 08:44
 
Fecha de Ingreso: abril-2008
Mensajes: 34
Antigüedad: 16 años
Puntos: 0
Re: ayuda con calendarios

Aquí tienes uno que ya fue posteado en otro tema del foro. Funciona llamando a la función pasandole el mes, año y la forma en que quieres que se nombren los dias. Si quieres modificalo para que coja la fecha actual, ya a tu gusto.


function calendario ($mes , $anyo , $formato="L,M,X,J,V,S,D") {

$celda_vacia = "&nbsp;"; //ESTA CADENA IRÍA DENTRO DE LOS <tr> VACÍOS

$dias_total = cal_days_in_month (0 , $mes , $anyo);
$datos_fecha = getdate(strtotime($anyo . '-' . $mes . '-1'));
$dia_semana = $datos_fecha['wday']; //de 0 (domingo) a 6 (sabado)
$dias_nombre = explode("," , $formato);
$dias_array = array();
$dias_vacios = 35-$dias_total;
$tabla = '
<table width="710" cellpadding="2" cellspacing="01" border="0" id="calendar">
<tr id="noborder">
<td colspan="7" class="subHeader" align="center">Mes</td>
</tr>
<tr id="weekdays" bgcolor="#003399">
<th width=25 height=25>' . $dias_nombre[0] . '</th>
<th width=25 height=25>' . $dias_nombre[1] . '</th>
<th width=25 height=25>' . $dias_nombre[2] . '</th>
<th width=25 height=25>' . $dias_nombre[3] . '</th>
<th width=25 height=25>' . $dias_nombre[4] . '</th>
<th width=25 height=25>' . $dias_nombre[5] . '</th>
<th width=25 height=25>' . $dias_nombre[6] . '</th>

</tr>' . "\n" . ' <tr id="calheader" bgcolor="#ffffcc">';
$primer_dia = $dia_semana-1;
if($primer_dia == -1) {
$primer_dia = 6;
}
while($primer_dia != 0) {
$primer_dia--;
$tabla .= "\n" . ' <td>' . $celda_vacia . '</td>';
}
$primera_semana = 7-($dia_semana-1);
$dias_restantes = $dias_vacios-(7-$primera_semana);
for($i=1;$i<=$dias_total;$i++) {
$tabla .= "\n";
if($primera_semana == 8) {$primera_semana = 1;}
if($primera_semana == 0) {
$tabla .= " </tr>\n <tr id='calheader' bgcolor='#ffffcc'>\n";
$primera_semana = 7;
}
$tabla .= " <td valign='top' align='center' class='smallText'>$i</td>";
$primera_semana--;

}
if($dias_restantes == -1) {$dias_restantes = 6;}
if($dias_restantes == 7) {$dias_restantes = 0;}
for($i=0;$i<$dias_restantes;$i++) {
$tabla .= '
<td valign="top" align="center" class="smallText">' . $celda_vacia . '</td>';
}
$tabla .= '
</tr>
</table>';
return $tabla;
}


Un saludo.

Última edición por Ziyad; 09/05/2008 a las 03:24
  #3 (permalink)  
Antiguo 08/05/2008, 13:29
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 15 años, 11 meses
Puntos: 0
perdona q t moleste ziyad pero e echo esto y no me muestra el calendario me salen un par de cuadros asules y ya ta

hola buenos dias mirad

<?

$matriz_meses[1]="enero";
$matriz_meses[2]="febrero";
$matriz_meses[3]="marzo";
$matriz_meses[4]="abril";
$matriz_meses[05]="mayo";
$matriz_meses[6]="junio";
$matriz_meses[7]="julio";
$matriz_meses[8]="agosto";
$matriz_meses[9]="septiembre";
$matriz_meses[10]="octubre";
$matriz_meses[11]="noviembre";
$matriz_meses[12]="diciembre";


$dia_actual=date("d");
$mes_actual=date("m");
$ano_actual=date("Y");
yo q e puesto esto para mi calendario y lo q me interesaria seria coger el mese q me daria 05 claro y compararlo con mi matris de alguna manera paara q me diera mayo como lo puedo aser es q e intentado varias cosas pero no me funciona como poner

$matriz_meses[$mes_actual]; pero no me va avers si me podeis exar un cable gracias

Última edición por GatorV; 09/05/2008 a las 08:52
  #4 (permalink)  
Antiguo 09/05/2008, 02:50
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: ayuda con calendarios

agrega los indices entre comillas, si... los numeros

$meses["01"]="Enero";
$meses["02"]="Febrero";

asi... date("m") acertara en el blanco?
  #5 (permalink)  
Antiguo 09/05/2008, 02:56
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: ayuda con calendarios

otra cosilla aver si no os importa exarme un cable yo que e puesto :

echo "<tr>";
for ($i=1;$i<=7;$i++)
{
echo "<td>"."$i"."</td>";
}
echo "</tr>";
echo "<tr>";
for ($i=8;$i<=14;$i++)
{
echo "<td>"."$i"."</td>";
}
echo "</tr>";
echo "<tr>";
for ($i=15;$i<=21;$i++)
{
echo "<td>"."$i"."</td>";
}
echo "</tr>";
echo "<tr>";
for ($i=22;$i<=28;$i++)
{
echo "<td>"."$i"."</td>";
}
echo "</tr>";
echo "<tr>";
for ($i=29;$i<=31;$i++)
{
echo "<td>"."$i"."</td>";
}
echo "</tr>";

esto para q me salga en cada linea de el calendario 7 dias del 1 al 31 hay alguna manera para q coin un for o algo me salga sin tener q dividirlo de esta manera para no t ener q ir de 7 en 7 poniendo un for pa los tr otro pa los td y otro pa los dias aver sino es muxa molestia ayuudarme muxas gracias
  #6 (permalink)  
Antiguo 09/05/2008, 03:09
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: ayuda con calendarios

si te das cuenta un calendario es una tabla de 7x4 o 7x5 a veces....

simplemente usa un for y rompes cada 7 elementos...

print '<table><tbody>';
$out=false;
for ($i=$n=0; $i<31; $i++)
{
if (!$out)
{
print '<tr>';
$out=true;
}


print '<td>celda '.$i.'/'.$n.'</td>';


if ($n==7)
{
$n=0;
print '</tr>';
}
else
{
$n++;
}
}
print '</tbody></table>';
  #7 (permalink)  
Antiguo 09/05/2008, 03:21
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 15 años, 11 meses
Puntos: 0
pero al poner eso me sale

lunes martes miercoles jueves viernes sabado domingo
1 2 3 4 5 6 7 8
9 10

el 8 tendria q estar abajo no¿?¿ como lobajo

yasta gracias

Última edición por GatorV; 09/05/2008 a las 08:52
  #8 (permalink)  
Antiguo 09/05/2008, 03:28
 
Fecha de Ingreso: abril-2008
Mensajes: 34
Antigüedad: 16 años
Puntos: 0
Re: ayuda con calendarios

He editado el código anterior, por algún posible fallo. Probadlo ahora, no teneis más que llamar a la función así:

echo calendario("5","2008","Lunes,Martes,Miercoles,Juev es,Viernes,Sabado,Domingo");


Saludos
  #9 (permalink)  
Antiguo 09/05/2008, 03:30
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 15 años, 11 meses
Puntos: 0
y una penultima cosilla yo ya tengo mi calendario q empiesa en 1 y acaba en 31 y tengo la fexa actual y to pero como puedo hacer para q cuando vea el dia actual me vaya al dia correspondiente es decir si es 9 de mayo q me vaya a viernes y eso se me mueva de un mes a otro no se si sabes loq t quiero decir pateketrueke

por q tengo

l m mi ju vi sa do
1 2 3 4 5 6 7
8 9 10 ...

yo lo q quiero es q ya q el mes es 5el dia me vaya el dia uno a jueves para empesar desde ai y ya los meses siguientes se vayan cambiando con la fecha actual

pateketrueke se t ocurre alguna cosilla para poder mover los dias con respectoa la fecha actual

Última edición por GatorV; 09/05/2008 a las 08:52
  #10 (permalink)  
Antiguo 09/05/2008, 06:35
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
De acuerdo Re: ayuda con calendarios

Tengo uno todo hecho... especial para vos...!

1) crea una carpeta llamada "calendario" y dentro de esa carpeta crea los siguientes archivos:

Pagina index.php:
Código PHP:

<?
///////////////////////////////////////////////////////////////////////////////////////////////
//Libreria para mostrar un calendario y obtener una fecha
//
//La página que llame a esta libreria debe contener un formulario con tres campos donde se introducirá el día el mes y el año que se desee
//Para que este calendario pueda actualizar los campos de formulario correctos debe recibir varios datos (por GET)
//formulario (con el nombre del formulario donde estan los campos
//dia (con el nombre del campo donde se colocará el día)
//mes (con el nombre del campo donde se colocará el mes)
//ano (con el nombre del campo donde se colocará el año)
///////////////////////////////////////////////////////////////////////////////////////////////
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>Calendario PHP</title>
    <link rel="STYLESHEET" type="text/css" href="estilo.css">
    <script>
        function devuelveFecha(dia,mes,ano){
            //Se encarga de escribir en el formulario adecuado los valores seleccionados
            //también debe cerrar la ventana del calendario
            var formulario_destino = '<?echo $_GET["formulario"]?>'
            
            var campo_destino = '<?echo $_GET["nomcampo"]?>'
                    
            //meto el dia
            eval ("opener.document." + formulario_destino + "." + campo_destino + ".value='" + ano + "-" + mes + "-" + dia + "'")
            window.close()
        }
    </script>
</head>

<body>

<?
//TOMO LOS DATOS QUE RECIBO POR LA url Y LOS COMPONGO PARA PASARLOS EN SUCESIVAS EJECUCIONES DEL CALENDARIO
$parametros_formulario "formulario=" $_GET["formulario"] . "&nomcampo=" $_GET["nomcampo"];
?>

<div align="center">
<?
require ("calendario.php");
$tiempo_actual time();
$dia_solo_hoy date("d",$tiempo_actual);
if (!
$_POST && !isset($_GET["nuevo_mes"]) && !isset($_GET["nuevo_ano"])){
    
$mes date("n"$tiempo_actual);
    
$ano date("Y"$tiempo_actual);
}elseif (
$_POST) {
    
$mes $_POST["nuevo_mes"];
    
$ano $_POST["nuevo_ano"];
}else{
    
$mes $_GET["nuevo_mes"];
    
$ano $_GET["nuevo_ano"];
}
    
mostrar_calendario($mes,$ano);
formularioCalendario($mes,$ano);
?>
</div>
</body>
</html>

Pagina javascripts.js:

Código HTML:

var ventanaCalendario=false

function muestraCalendario(raiz,formulario_destino,campo_destino,mes_destino,ano_destino){
	//funcion para abrir una ventana con un calendario.
	//Se deben indicar los datos del formulario y campos que se desean editar con el calendario, es decir, los campos donde va la fecha.
	if (typeof ventanaCalendario.document == "object") {
		ventanaCalendario.close()
	}
	ventanaCalendario = window.open("calendario/index.php?formulario=" + formulario_destino + "&nomcampo=" + campo_destino,"calendario","width=300,height=300,left=100,top=100,scrollbars=no,menubars=no,statusbar=NO,status=NO,resizable=YES,location=NO")
}
Pagina estilo.css:

Código HTML:
BODY  {
	font-family : verdana,arial,helvetica;
	font-size : 10pt;
	background-color : #ffffff;
}

TD  {
	font-family : verdana,arial,helvetica;
	font-size : 10pt;
}

INPUT  {
	font-family : verdana,arial,helvetica;
	font-size : 8pt;
}

TEXTAREA  {
	font-family : verdana,arial,helvetica;
	font-size : 8pt;
}

SELECT  {
	font-family : verdana,arial,helvetica;
	font-size : 8pt;
}

.altn  {
	font-family : verdana,arial,helvetica;
	font-size : 10pt;
	color: #ffffff;
	background-color: #666666;
}

.tit  {
	font-family : verdana,arial,helvetica;
	font-size : 10pt;
	color: #ffffff;
	background-color: #333333;
	font-weight: bold;
}

.hoy {
	font-family : verdana,arial,helvetica;
	font-size : 10pt;
	color: 000099
}

.domingo {
	font-family : verdana,arial,helvetica;
	font-size : 10pt;
	color: 990000
}

.diario {
	font-family : verdana,arial,helvetica;
	font-size : 10pt;
	color: 000000
}

.tform {
	border-width: 1px;
	border-color: 75263C;
	border-style: solid;
}
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #11 (permalink)  
Antiguo 09/05/2008, 06:35
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
De acuerdo Re: ayuda con calendarios

Pagina Calendario.php:

Código PHP:

<?
function calcula_numero_dia_semana($dia,$mes,$ano){
    
$numerodiasemana date('w'mktime(0,0,0,$mes,$dia,$ano));
    if (
$numerodiasemana == 0
        
$numerodiasemana 6;
    else
        
$numerodiasemana--;
    return 
$numerodiasemana;
}

//funcion que devuelve el último día de un mes y año dados
function ultimoDia($mes,$ano){ 
    
$ultimo_dia=28
    while (
checkdate($mes,$ultimo_dia 1,$ano)){ 
       
$ultimo_dia++; 
    } 
    return 
$ultimo_dia


function 
dame_nombre_mes($mes){
     switch (
$mes){
         case 
1:
            
$nombre_mes="Enero";
            break;
         case 
2:
            
$nombre_mes="Febrero";
            break;
         case 
3:
            
$nombre_mes="Marzo";
            break;
         case 
4:
            
$nombre_mes="Abril";
            break;
         case 
5:
            
$nombre_mes="Mayo";
            break;
         case 
6:
            
$nombre_mes="Junio";
            break;
         case 
7:
            
$nombre_mes="Julio";
            break;
         case 
8:
            
$nombre_mes="Agosto";
            break;
         case 
9:
            
$nombre_mes="Septiembre";
            break;
         case 
10:
            
$nombre_mes="Octubre";
            break;
         case 
11:
            
$nombre_mes="Noviembre";
            break;
         case 
12:
            
$nombre_mes="Diciembre";
            break;
    }
    return 
$nombre_mes;
}

function 
dame_estilo($dia_imprimir){
    global 
$mes,$ano,$dia_solo_hoy,$tiempo_actual;
    
//dependiendo si el día es Hoy, Domigo o Cualquier otro, devuelvo un estilo
    
if ($dia_solo_hoy == $dia_imprimir && $mes==date("n"$tiempo_actual) && $ano==date("Y"$tiempo_actual)){
        
//si es hoy
        
$estilo " class='hoy'";
    }else{
        
$fecha=mktime(12,0,0,$mes,$dia_imprimir,$ano);
        if (
date("w",$fecha)==0){
            
//si es domingo 
            
$estilo " class='domingo'";
        }else{
            
//si es cualquier dia
            
$estilo " class='diario'";
        }
    }
    return 
$estilo;
}

function 
mostrar_calendario($mes,$ano){
    global 
$parametros_formulario;
    
//tomo el nombre del mes que hay que imprimir
    
$nombre_mes dame_nombre_mes($mes);
    
    
//construyo la cabecera de la tabla
    
echo "<table width=200 cellspacing=3 cellpadding=2 border=0><tr><td colspan=7 align=center class=tit>";
    echo 
"<table width=100% cellspacing=2 cellpadding=2 border=0><tr><td style=font-size:10pt;font-weight:bold;color:white>";
    
//calculo el mes y ano del mes anterior
    
$mes_anterior $mes 1;
    
$ano_anterior $ano;
    if (
$mes_anterior==0){
        
$ano_anterior--;
        
$mes_anterior=12;
    }
    echo 
"<a style=color:white;text-decoration:none href=index.php?$parametros_formulario&nuevo_mes=$mes_anterior&nuevo_ano=$ano_anterior>&lt;&lt;</a></td>";
       echo 
"<td align=center class=tit>$nombre_mes $ano</td>";
       echo 
"<td align=right style=font-size:10pt;font-weight:bold;color:white>";
    
//calculo el mes y ano del mes siguiente
    
$mes_siguiente $mes 1;
    
$ano_siguiente $ano;
    if (
$mes_siguiente==13){
        
$ano_siguiente++;
        
$mes_siguiente=1;
    }
    echo 
"<a style=color:white;text-decoration:none href=index.php?$parametros_formulario&nuevo_mes=$mes_siguiente&nuevo_ano=$ano_siguiente>&gt;&gt;</a></td></tr></table></td></tr>";
    echo 
'    <tr>
                <td width=14% align=center class=altn>L</td>
                <td width=14% align=center class=altn>M</td>
                <td width=14% align=center class=altn>X</td>
                <td width=14% align=center class=altn>J</td>
                <td width=14% align=center class=altn>V</td>
                <td width=14% align=center class=altn>S</td>
                <td width=14% align=center class=altn>D</td>
            </tr>'
;
    
    
//Variable para llevar la cuenta del dia actual
    
$dia_actual 1;
    
    
//calculo el numero del dia de la semana del primer dia
    
$numero_dia calcula_numero_dia_semana(1,$mes,$ano);
    
//echo "Numero del dia de demana del primer: $numero_dia <br>";
    
    //calculo el último dia del mes
    
$ultimo_dia ultimoDia($mes,$ano);
    
    
//escribo la primera fila de la semana
    
echo "<tr>";
    for (
$i=0;$i<7;$i++){
        if (
$i $numero_dia){
            
//si el dia de la semana i es menor que el numero del primer dia de la semana no pongo nada en la celda
            
echo "<td></td>";
        } else {
            echo 
"<td align=center><a href='javascript:devuelveFecha($dia_actual,$mes,$ano)'"dame_estilo($dia_actual) .">$dia_actual</a></td>";
            
$dia_actual++;
        }
    }
    echo 
"</tr>";
    
    
//recorro todos los demás días hasta el final del mes
    
$numero_dia 0;
    while (
$dia_actual <= $ultimo_dia){
        
//si estamos a principio de la semana escribo el <TR>
        
if ($numero_dia == 0)
            echo 
"<tr>";
        echo 
"<td align=center><a href='javascript:devuelveFecha($dia_actual,$mes,$ano)'"dame_estilo($dia_actual) .">$dia_actual</a></td>";
        
$dia_actual++;
        
$numero_dia++;
        
//si es el uñtimo de la semana, me pongo al principio de la semana y escribo el </tr>
        
if ($numero_dia == 7){
            
$numero_dia 0;
            echo 
"</tr>";
        }
    }
    
    
//compruebo que celdas me faltan por escribir vacias de la última semana del mes
    
for ($i=$numero_dia;$i<7;$i++){
        echo 
"<td></td>";
    }
    
    echo 
"</tr>";
    echo 
"</table>";
}    

function 
formularioCalendario($mes,$ano){
    global 
$parametros_formulario;
echo 
'
    <br>
    <table align="center" cellspacing="2" cellpadding="2" border="0" class=tform>
    <tr><form action="index.php?' 
$parametros_formulario '" method="POST">';
echo 
'
    <td align="center" valign="top">
        Mes: <br>
        <select name=nuevo_mes>
        <option value="1"'
;
if (
$mes==1)
 echo 
"selected";
echo
'>Enero
        <option value="2" '
;
if (
$mes==2
    echo 
"selected";
echo
'>Febrero
        <option value="3" '
;
if (
$mes==3
    echo 
"selected";
echo
'>Marzo
        <option value="4" '
;
if (
$mes==4
    echo 
"selected";
echo 
'>Abril
        <option value="5" '
;
if (
$mes==5
        echo 
"selected";
echo 
'>Mayo
        <option value="6" '
;
if (
$mes==6
    echo 
"selected";
echo 
'>Junio
        <option value="7" '
;
if (
$mes==7
    echo 
"selected";
echo 
'>Julio
        <option value="8" '
;
if (
$mes==8
    echo 
"selected";
echo 
'>Agosto
        <option value="9" '
;
if (
$mes==9
    echo 
"selected";
echo 
'>Septiembre
        <option value="10" '
;
if (
$mes==10
    echo 
"selected";
echo 
'>Octubre
        <option value="11" '
;
if (
$mes==11
    echo 
"selected";
echo 
'>Noviembre
        <option value="12" '
;
if (
$mes==12
    echo 
"selected";
echo 
'>Diciembre
        </select>
        </td>'
;
echo 
'        
        <td align="center" valign="top">
        A&ntilde;o: <br>
        <select name=nuevo_ano>'
;

for (
$cont=1900;$cont<$ano+3;$cont++){
    echo 
"<option value='$cont'";
    if (
$ano==$cont
           echo 
" selected";
       echo 
">$cont";
}
echo 
'
    </select>
        </td>'
;
echo 
'
    </tr>
    <tr>
        <td colspan="2" align="center"><input type="Submit" value="[ IR A ESE MES ]"></td>
    </tr>
    </table><br>
    
    <br>
    
    </form>'
;
}
    
////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Función que escribe en la página un fomrulario preparado para introducir una fecha y enlazado con el calendario para seleccionarla comodamente
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function escribe_formulario_fecha_vacio($nombrecampo,$nombreformulario){
    global 
$raiz;
    echo 
'
    <INPUT readonly="" name="'
.$nombrecampo.'" size="10">
    <input type=button value="Seleccionar fecha" onclick="muestraCalendario(\''
$raiz.'\',\''$nombreformulario .'\',\''.$nombrecampo.'\')">
    '
;    
}
function 
escribe_formulario_fecha_llena($nombrecampo,$nombreformulario,$fecha){
    global 
$raiz;
    echo 
'
    <INPUT readonly="" name="'
.$nombrecampo.'" size="10" value="'.$fecha.'">
    <input type=button value="Seleccionar fecha" onclick="muestraCalendario(\''
$raiz.'\',\''$nombreformulario .'\',\''.$nombrecampo.'\')">
    '
;    
}
?>

y listo!



para llamarlo lo haces asi:

<?
$fechacal=$_POST['nombredelcampo'];
escribe_formulario_fecha_llena("nombredelcampo","f orm1",$fechacal);
?>
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #12 (permalink)  
Antiguo 09/05/2008, 10:02
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: ayuda con calendarios

Hola Buenas Tardes De Q Manera Puedo Averiguar Q Dia De La Semana Es En Php Es Decir Q Me Diga Un Numero De La Semana 0 Si Es Lunes 1 Si Es Martes 2 Si Es Miercoles Asi Hasta Domingo Aver Si Ai Algun Comando Como En Javascript Esta Getday O Algo De Eso
  #13 (permalink)  
Antiguo 09/05/2008, 10:10
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona (España)
Mensajes: 134
Antigüedad: 19 años, 3 meses
Puntos: 0
Re: ayuda con calendarios

Echa un vistazo a la documentación de php:

http://es2.php.net/manual/es/function.date.php
  #14 (permalink)  
Antiguo 12/05/2008, 05:36
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: ayuda con calendarios

mirad este es mi calendario.php ahora mismoes solo un calendario con los dias del 1 (lunes) hata el 31 no hay na mas por qno consigo mover los dias aver si me podeis exar un cable en la idea para saber como mover los dias de un mese a otro gracias
Código PHP:
<? 
session_start
(); 
?>

<html>
<head>
<link href="austin.ico" type="image/x-icon" rel="shortcut icon" />
</head>
<table>
<?
$semana
=getdate();
$dia_semana_con_letras=$semana[weekday];
$dia_semana_con_numero=$semana[wday];

$matriz_meses["01"]="enero";
$matriz_meses["02"]="febrero";
$matriz_meses["03"]="marzo";
$matriz_meses["04"]="abril";
$matriz_meses["05"]="mayo";
$matriz_meses["06"]="junio";
$matriz_meses["07"]="julio";
$matriz_meses["08"]="agosto";
$matriz_meses["09"]="septiembre";
$matriz_meses["10"]="octubre";
$matriz_meses["11"]="noviembre";
$matriz_meses["12"]="diciembre";
$matriz_semana=array ('lunes','martes','miercoles','jueves','viernes','sabado','domingo');



$dia_actual=date("d");
$mes_actual=date("m");
$ano_actual=date("Y");

$dia_siguiente=$dia_actual+1;
$mes_siguiente=$mes_actual+1;
$ano_siguiente=$ano_actual+1;



echo 
"<tr>";
echo 
"<td colspan='7' align='center'>".$matriz_meses[$mes_actual]."</td>";
echo 
"</tr>";


echo 
"<tr>";
for (
$d=0;$d<=6;$d++)
{
    echo 
"<td>".$matriz_semana[$d]."</Td>";
}
echo 
"</tr>";


for (
$i=1$i<=31$i++)
{
if (
$salir)
{
echo  
'<tr>';
}
echo 
'<td>'.$i.'</td>';

if (
$n==6)
{
$n=0;

echo 
'</tr>';
}
else
{
$n++;
}
}



?>
</table>
</center>
<a href="inicio.php">vuelve a la pagina de inicio</a>

</body>

</html>
  #15 (permalink)  
Antiguo 12/05/2008, 05:45
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: ayuda con calendarios

Si os interesa, yo hice un calendario totalmente en javascript, podeis echarle un ojo Aqui :

http://almarcha.info/componentes/Calendario/

No esta muy para alla de diseño y tal, pero no se, igual os vale para algo.

Repito, es javaScript. xD
__________________
» Presupuesto Pagina Web
  #16 (permalink)  
Antiguo 12/05/2008, 06:24
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: ayuda con calendarios

y una pregunta misko de que manera puedo saber que dia de la semana es . es decir que funcion con date tengo q usar para que si es lunes me diga 1 o martes 2 omiercoles 3 q eso viene y lo q me pasa q no consigo mover los dias
  #17 (permalink)  
Antiguo 12/05/2008, 06:47
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: ayuda con calendarios

Código PHP:
<? 
session_start
(); 
?>

<html>
<head>
<link href="austin.ico" type="image/x-icon" rel="shortcut icon" />
</head>
<table>
<?
$semana
=getdate();
$dia_semana_con_letras=$semana[weekday];
$dia_semana_con_numero=$semana[wday];


$cuenta_dia_mes["01"]="31";
$cuenta_dia_mes["02"]="28";
$cuenta_dia_mes["03"]="31";
$cuenta_dia_mes["04"]="30";
$cuenta_dia_mes["05"]="31";
$cuenta_dia_mes["06"]="30";
$cuenta_dia_mes["07"]="31";
$cuenta_dia_mes["08"]="31";
$cuenta_dia_mes["09"]="30";
$cuenta_dia_mes["10"]="31";
$cuenta_dia_mes["11"]="30";
$cuenta_dia_mes["12"]="31";

$matriz_meses["01"]="enero";
$matriz_meses["02"]="febrero";
$matriz_meses["03"]="marzo";
$matriz_meses["04"]="abril";
$matriz_meses["05"]="mayo";
$matriz_meses["06"]="junio";
$matriz_meses["07"]="julio";
$matriz_meses["08"]="agosto";
$matriz_meses["09"]="septiembre";
$matriz_meses["10"]="octubre";
$matriz_meses["11"]="noviembre";
$matriz_meses["12"]="diciembre";

$matriz_semana[01]="Monday";
$matriz_semana[02]="Tuesday";
$matriz_semana[03]="Wednes";
$matriz_semana[04]="Thursday";
$matriz_semana[05]="Friday";
$matriz_semana[06]="Saturday";
$matriz_semana[00]="Sunday";

if(
$dia_semana_con_letras==$matriz_semana[1])
{
$dia_actual=date("d");
$mes_actual=date("m");
$ano_actual=date("Y");

$dia_siguiente=$dia_actual+1;
$mes_siguiente=$mes_actual+1;
$ano_siguiente=$ano_actual+1;


echo 
"<tr>";
echo 
"<td colspan='7' align='center'>".$matriz_meses[$mes_actual]."</td>";
echo 
"</tr>";

echo 
"<tr>";
for (
$d=1;$d<=6;$d++)
{
    echo 
"<td>".$matriz_semana[$d]."</Td>";
}
echo 
"</tr>";


for (
$i=1$i<=$cuenta_dia_mes[$mes_actual]; $i++)
{
if (
$salir)
{
echo  
'<tr>';
}
echo 
'<td>'.$i.'</td>';

if (
$n==6)
{
$n=0;

echo 
'</tr>';
}
else
{
$n++;
}
}

}
else
 {echo 
"mal";}

?>
</table>
</center>
<a href="inicio.php">vuelve a la pagina de inicio</a>

</body>

</html>
con este codigo que me e creadoahora de q manera pongo el dia uno de cada mes en el dia de la semana q le correspode por q no todos los meses estan en el mismodia de la semana es decir enero empiesa en el año 2008 el lunes febreo en miercoles etc aver si me podeis exar un cable a partir del codigo q yo tengo
  #18 (permalink)  
Antiguo 12/05/2008, 07:10
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: ayuda con calendarios

Ante todo, intenta dejar siempre las cosas tabuladas para su mejor lectura :

Código PHP:

<?
session_start
();
?>

<html>
    <head>
        <link href="austin.ico" type="image/x-icon" rel="shortcut icon" />
    </head>
    <body>
        <table>
            <?
            $semana
=getdate();
            
$dia_semana_con_letras=$semana[weekday];
            
$dia_semana_con_numero=$semana[wday];
            
            
            
$cuenta_dia_mes["01"]="31";
            
$cuenta_dia_mes["02"]="28";
            
$cuenta_dia_mes["03"]="31";
            
$cuenta_dia_mes["04"]="30";
            
$cuenta_dia_mes["05"]="31";
            
$cuenta_dia_mes["06"]="30";
            
$cuenta_dia_mes["07"]="31";
            
$cuenta_dia_mes["08"]="31";
            
$cuenta_dia_mes["09"]="30";
            
$cuenta_dia_mes["10"]="31";
            
$cuenta_dia_mes["11"]="30";
            
$cuenta_dia_mes["12"]="31";
            
            
$matriz_meses["01"]="enero";
            
$matriz_meses["02"]="febrero";
            
$matriz_meses["03"]="marzo";
            
$matriz_meses["04"]="abril";
            
$matriz_meses["05"]="mayo";
            
$matriz_meses["06"]="junio";
            
$matriz_meses["07"]="julio";
            
$matriz_meses["08"]="agosto";
            
$matriz_meses["09"]="septiembre";
            
$matriz_meses["10"]="octubre";
            
$matriz_meses["11"]="noviembre";
            
$matriz_meses["12"]="diciembre";
            
            
$matriz_semana[01]="Monday";
            
$matriz_semana[02]="Tuesday";
            
$matriz_semana[03]="Wednes";
            
$matriz_semana[04]="Thursday";
            
$matriz_semana[05]="Friday";
            
$matriz_semana[06]="Saturday";
            
$matriz_semana[00]="Sunday";
            
            if(
$dia_semana_con_letras==$matriz_semana[1])
            {
                
$dia_actual=date("d");
                
$mes_actual=date("m");
                
$ano_actual=date("Y");
                
                
$dia_siguiente=$dia_actual+1;
                
$mes_siguiente=$mes_actual+1;
                
$ano_siguiente=$ano_actual+1;
                
                
                echo 
"<tr>";
                    echo 
"<td colspan='7' align='center'>".$matriz_meses[$mes_actual]."</td>";
                echo 
"</tr>";
                
                echo 
"<tr>";
                    for (
$d=1;$d<=6;$d++)
                    {
                        echo 
"<td>".$matriz_semana[$d]."</Td>";
                    }
                echo 
"</tr>";
                
                
                for (
$i=1$i<=$cuenta_dia_mes[$mes_actual]; $i++)
                {
                    if (
$salir)
                    {
                        echo  
'<tr>';
                        }
                        echo 
'<td>'.$i.'</td>';
                        
                        if (
$n==6)
                        {
                            
$n=0;
                            
                        echo 
'</tr>';
                    }
                    else
                    {
                        
$n++;
                    }
                }
                
            }
            else
            {echo 
"mal";}
            
            
?>
        </table>
        <a href="inicio.php">vuelve a la pagina de inicio</a>
        
    </body>
    
</html>

Y weno, supongo que lo querras hacer en PHP, asi que aki tienes el objeto date :
http://es2.php.net/date


Supongo que para saber que dia determinado es, tendrias que hacer el dia, y luego preguntarle por l ( L minuscula ) q es cuando te dice si es Sunday, Monday etc..

El codigo :

Código PHP:

$dia 
"1" ;
$mes "7" ;
$year "2008" ;

date("l"mktime(000$mes$dia$year)); 
__________________
» Presupuesto Pagina Web
  #19 (permalink)  
Antiguo 12/05/2008, 07:33
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: ayuda con calendarios

vale muchas gracias y otra cosilla si puedes y sino es mucha molestia como puedo hacer para poner el dia 1 de cada mes en el dia de la semana q corresponde.
nose si me entiendes es decir
si 1 de enero del 2008 empiesa en lunes y 1 de marso empiesa en jueves como ago para mover los dias de un dia de la semana a otro
  #20 (permalink)  
Antiguo 12/05/2008, 07:46
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: ayuda con calendarios

rellena los huecos que no sean el dia q necesitas con espacios xD

si por ejemplo cae jueves tendrias q obtener una cosa asi

Código PHP:

<tr>
<
td> </td>
<
td> </td>
<
td> </td>
<
td>1</td>
<
td>2</td>
<
td>3</td>
<
td>4</td>
</
tr
__________________
» Presupuesto Pagina Web
  #21 (permalink)  
Antiguo 12/05/2008, 08:05
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: ayuda con calendarios

ya pero la cosa es q me lo aga automaticamente yo no tenga yo que hacer nada
  #22 (permalink)  
Antiguo 12/05/2008, 08:13
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: ayuda con calendarios

tio es facil, te haces un switch xD

Código PHP:

Switch($diaSemana)
{
    
    case 
"Monday":
        
rellenaCalendario(0) ;
        break ;
    case 
"Tuesday":
        
rellenaCalendario(1) ;
        break ;
    case 
"Wednesday":
        
rellenaCalendario(2) ;
        break ;
    case 
"Thursday":
        
rellenaCalendario(3) ;
        break ;
    case 
"Friday":
        
rellenaCalendario(4) ;
        break ;
    case 
"Saturday":
        
rellenaCalendario(5) ;
        break ;
    case 
"Sunday":
        
rellenaCalendario(6) ;
        break ;

y que la funcion de rellenaCalendario se encargue de, en funcion del digito, d poner tantos spacios :]
__________________
» Presupuesto Pagina Web
  #23 (permalink)  
Antiguo 12/05/2008, 12:21
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: ayuda con calendarios

muchas gracias
mirad aver q os parece esto
$primer_dia_semana=strftime('%A',strtotime('$ano_a ctual-$mes_actual-01'));

esto me da problemas por q yo quiero q me de de alguna manera el numero de la semana a la q equivale la fehca dada es decri $ano_Actual equivale al año q e usao el date el $mes_actual al mes y01 e puesto el dia ya q quiero q me de el numero de semana (lunes=1,martes2,...) del primer dia de cada mes del año aver si sabeis alguna manera para q me lode por q solo e conseguio q me de el dia de la semana actual es decir si hoy es lunes me da el numero 1 pero yo quiero q si enero el dia 1 empiesa en jueves me de 4 aver si teneis alguna solucion ya q soy lo mejor q me e encontrao y q me han recomendado
  #24 (permalink)  
Antiguo 13/05/2008, 02:58
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: ayuda con calendarios

Código PHP:
<? 
session_start
(); 
?>

<html>
<head>
<link href="austin.ico" type="image/x-icon" rel="shortcut icon" />
</head>
<table>
<?



$semana
=getdate();
$dia_semana_con_letras=$semana[weekday];
$dia_semana_con_numero=$semana[wday];
$blanco="";

;

$cuenta_dia_mes["01"]="31";
$cuenta_dia_mes["02"]="28";
$cuenta_dia_mes["03"]="31";
$cuenta_dia_mes["04"]="30";
$cuenta_dia_mes["05"]="31";
$cuenta_dia_mes["06"]="30";
$cuenta_dia_mes["07"]="31";
$cuenta_dia_mes["08"]="31";
$cuenta_dia_mes["09"]="30";
$cuenta_dia_mes["10"]="31";
$cuenta_dia_mes["11"]="30";
$cuenta_dia_mes["12"]="31";

$matriz_meses["01"]="enero";
$matriz_meses["02"]="febrero";
$matriz_meses["03"]="marzo";
$matriz_meses["04"]="abril";
$matriz_meses["05"]="mayo";
$matriz_meses["06"]="junio";
$matriz_meses["07"]="julio";
$matriz_meses["08"]="agosto";
$matriz_meses["09"]="septiembre";
$matriz_meses["10"]="octubre";
$matriz_meses["11"]="noviembre";
$matriz_meses["12"]="diciembre";

$matriz_semana[01]="lunes";
$matriz_semana[02]="martes";
$matriz_semana[03]="miercoles";
$matriz_semana[04]="jueves";
$matriz_semana[05]="viernes";
$matriz_semana[06]="sabado";
$matriz_semana[07]="domingo";


$dia_actual=date("d");
$mes_actual=date("m");
$ano_actual=date("Y");


$dia_siguiente=$dia_actual+1;
$mes_siguiente=$mes_actual+1;
$ano_siguiente=$ano_actual+1;


setlocale(LC_TIME,'sp');

$dia_actual=date("d");
$mes_actual=date("m");
$ano_actual=date("Y");

$primer_dia_semana=strftime('%w',strtotime('2008-05-01'));  



echo 
"<tr>";
echo 
"<td colspan='7' align='center'>".$matriz_meses[$mes_actual]."</td>";
echo 
"</tr>";

echo 
"<tr>";
for (
$d=1;$d<=7;$d++)
{
    echo 
"<td>".$matriz_semana[$d]."</Td>";
}
echo 
"</tr>";

for(
$b=1;$b<$primer_dia_semana;$b++)
{
echo 
'<td>'.$blanco.'</td>';
}

for (
$i=1$i<=$cuenta_dia_mes[$mes_actual]; $i++)
{
if (
$salir)
{
echo  
'<tr>';
}

echo 
'<td>'.$i.'</td>';

if (
$n==6)
{
$n=0;

echo 
'</tr>';
}

else
{
$n++;
}
}



?>
</table>
</center>
<a href="inicio.php">vuelve a la pagina de inicio</a>

</body>

</html>


esto lo tengo practicamente acabado pero ma surgio un pequeño problema mirad

q me sale esto


lunes martes miercoles jueves viernes sabado domingo

1 2 3 4 5 6 7
8 9 10 11 ..............


bueno como puedo conseguir para ponner el 5 6 y 7 debajo es q lo e probao to y no me sale aver si podeis ayudarme gracias
  #25 (permalink)  
Antiguo 13/05/2008, 03:03
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: ayuda con calendarios

Ponles a los TD un width fijo y una alineacion centrada

<td width=50 align=center>
__________________
» Presupuesto Pagina Web
  #26 (permalink)  
Antiguo 13/05/2008, 03:14
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: ayuda con calendarios

ya pero aun asi no me soluciona el problema ya q lo q mas puesto misko es para el ancho de las celdas yo lo q quiero es q el 5 6 7 se pongan en la fila de abajo
  #27 (permalink)  
Antiguo 13/05/2008, 03:15
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: ayuda con calendarios

en la fila de abajo?, pk? xD si corresponden a viernes sabado y domingo, van ahi no ? XD
__________________
» Presupuesto Pagina Web
  #28 (permalink)  
Antiguo 13/05/2008, 03:24
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: ayuda con calendarios

no mira si t fijas en el calendario del mes de mayo veras q el primer dia del mes empiesa en jueves

con lo cual del lunes al miercoles tengo q dejarlos vacios y empesar a poner del 1 al 31 desde el jueves pues lo q me pasa es q si pongo 1 jueves 2 viernes 3 sabado 4 domingo el 5 tendira q ir en lunes y no se me pone y lo q me gustaria saber es como ago para ponerlo debajo y para q siga
  #29 (permalink)  
Antiguo 13/05/2008, 03:27
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: ayuda con calendarios

Eso ya te lo he explicado arriba :S
__________________
» Presupuesto Pagina Web
  #30 (permalink)  
Antiguo 13/05/2008, 03:45
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: ayuda con calendarios

pos no me va
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 22:07.