elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  MKTime() & <1970 ¬¬
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: MKTime() & <1970 ¬¬  (Leído 2,391 veces)
Azielito
no es
Colaborador
***
Desconectado Desconectado

Mensajes: 9.188


>.<


Ver Perfil WWW
MKTime() & <1970 ¬¬
« en: 25 Junio 2007, 18:34 pm »

Me da problemas, estoy calculando en que semana cumplen años los empleados, entonces, hago esto:
Código:
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="box_portada">
      <tr>
        <td colspan="2"><h1>Cumplea&ntilde;os del Personal ( semana
          <?= $semanaActual = date("W");?>
        )</h1></td>
      </tr>
      <tr>
        <td><b>Nombre</b></td>
        <td><b>Dia</b></td>
      </tr>
      <?php
$cumple_sql = "SELECT `id_issemym`,`nombreE` , `apellidoP` , `apellidoM` , `nacimiento` FROM `empleado` ORDER BY `nacimiento` DESC";
$cumple_query = @mysql_query($cumple_sql,$link);

$dias = array("Dom","Lun","Mar","Mie","Jue","Vie","Sab");
while($cumpleDat = @mysql_fetch_array($cumple_query)){
global $semanaActual,$dias;
$fechaNac = split("-",$cumpleDat['nacimiento']);
$dia = $fechaNac[2];
$mes = $fechaNac[1];
$anyo = $fechaNac[0];
$semanaCumple = date("W",mktime(0,0,0,$mes,$dia,$anyo));

if((int)$semanaActual == (int)$semanaCumple){

?>
      <tr>
        <td><?php echo $semanaActual."-".$semanaCumple." | "; $nombre= strtolower($cumpleDat['nombreE']." ".$cumpleDat['apellidoP']." ".$cumpleDat['apellidoM']); ?>
            <a title="Fecha de nacimiento: [<?=$cumpleDat['nacimiento'];?>]" href="inicio.php?a=datos_servidor&amp;d=consulta&amp;issemym=<?=$cumpleDat['id_issemym'];?>">
              <?=ucwords($nombre);?>
            </a> </td>
        <td><?php
$numDia = date("w",mktime(0,0,0,$mes,$dia,date("Y")));
echo $dias[$numDia]." ".$dia;?></td>
      </tr>
      <?php
}
 
}?>
    </table>

Pero el problema es que tengo muchos empleados que nacieron antes de Enero de 1970 y no me obtiene la semana :)

Estoy viendo la funcion GregorianToJD pero no me convence y creo que no tendria exito :-\

O, alguna funcion en MySQL para obtener este resultado

tienen alguna idea :D?

Gracias.


En línea

Azielito
no es
Colaborador
***
Desconectado Desconectado

Mensajes: 9.188


>.<


Ver Perfil WWW
Re: MKTime() & <1970 ¬¬
« Respuesta #1 en: 25 Junio 2007, 18:46 pm »

Proeblema 'semiresuelto'

Funciones fecha hora MySQL <- Click


En línea

Azielito
no es
Colaborador
***
Desconectado Desconectado

Mensajes: 9.188


>.<


Ver Perfil WWW
Re: MKTime() & <1970 ¬¬
« Respuesta #2 en: 25 Junio 2007, 20:27 pm »

Ya tengo otro codigo xD

mejor que el que intentaba usar antes, pero me da problemas con las fechas, o sea, la semana no la toma como deberia... el codigo es este
Código:
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="box_portada">
      <tr>
        <td colspan="2"><h1>Cumplea&ntilde;os del Personal ( semana
          <?= date("W");?>
        )</h1></td>
      </tr>
      <tr>
        <td><b>Nombre</b></td>
        <td><b>Dia</b></td>
      </tr>
      <?php
$cumple_sql = "SELECT `id_issemym`,`nombreE` , `apellidoP` , `apellidoM` , `nacimiento`,WEEK(nacimiento,1) as sCumple,WEEK(NOW(),1)as sActual FROM `empleado` ORDER BY `nacimiento` DESC";
$cumple_query = @mysql_query($cumple_sql,$link);

$dias = array("Dom","Lun","Mar","Mie","Jue","Vie","Sab");
while($cumpleDat = @mysql_fetch_array($cumple_query)){
global $semanaActual,$dias;
$fechaNac = split("-",$cumpleDat['nacimiento']);
$dia = $fechaNac[2];
$mes = $fechaNac[1];
$anyo = $fechaNac[0];

$semanaCumple = $cumpleDat['sCumple'];
$semanaActual = $cumpleDat['sActual'];

if((int)$semanaActual == (int)$semanaCumple){

?>
      <tr>
        <td><?php echo $semanaActual."-".$semanaCumple." | "; $nombre= strtolower($cumpleDat['nombreE']." ".$cumpleDat['apellidoP']." ".$cumpleDat['apellidoM']); ?>
            <a title="Fecha de nacimiento: [<?=$cumpleDat['nacimiento'];?>]" href="inicio.php?a=datos_servidor&amp;d=consulta&issemym=<?=$cumpleDat['id_issemym'];?>">
              <?=ucwords($nombre);?>
            </a> </td>
        <td><?php
$numDia = date("w",mktime(0,0,0,$mes,$dia,date("Y")));
echo $dias[$numDia]." ".$dia;?></td>
      </tr>
      <?php
}
 
}?>
    </table>

Y me da esto:


Ven? me da personas que cumplen años el dia 2 de julio xD y, no me da uno que cumple el dia 25 ¬¬'

Con SQL puedo hacer consultas algo asi como que compararlas entre los dias lunes y domingo de la semana actual?

Graicas por contestar >.<
En línea

Azielito
no es
Colaborador
***
Desconectado Desconectado

Mensajes: 9.188


>.<


Ver Perfil WWW
Re: MKTime() & <1970 ¬¬
« Respuesta #3 en: 25 Junio 2007, 23:46 pm »

Bueno, al final no use PHP

busque y busque y encontre que podemos obtener dia, mes y año de una fecha "X"

mediante SQL logre hacer esto
Código:
SELECT `id_issemym`,`nombreE` , `apellidoP` , `apellidoM` , `nacimiento`,WEEK( CONCAT(YEAR( NOW() ),'-',MONTH(nacimiento),'-',DAY(nacimiento)),1) as sCumple, WEEK(NOW(),1)as sActual, DAY(nacimiento)as orden FROM empleado ORDER BY `orden` ASC

Y con esto tenemos a los empleados que cumplen años esta semana ñ_ñ
En línea

[ Alberto]
Wiki

Desconectado Desconectado

Mensajes: 1.232



Ver Perfil
Re: MKTime() & <1970 ¬¬
« Respuesta #4 en: 29 Junio 2007, 15:47 pm »

http://propel.phpdb.org/trac/
En línea

Debemos de hacer todas las cosas sencillas, excepto las cosas sencillas
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
mktime y la edicion del tiempo directamente
PHP
patilanz 9 2,987 Último mensaje 28 Marzo 2014, 13:27 pm
por #!drvy
campo date debuelve 1970-01-01 « 1 2 »
PHP
Ethgar 14 8,600 Último mensaje 16 Julio 2014, 18:44 pm
por MinusFour
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines