Cristalab

Fechas completas con milisegundos en PHP

   Foros de discusión -> PHP, MySQL, Linux y Software Libre
Mensaje Autor
Mensaje Publicado: Mar Sep 20, 2005 4:28 am     Citar   firefox 
Actualmente tengo un pequeño programa (El ClabServer) que guarda dentro de la DB las fechas en este formato

YYYYMMDDHHMMSS

De modo que el 20 de Marzo del 2004 a las 12:20:35 sera asi:

20040320122035

Esta es la función que uso:

Código :

//Devuelve el timestamp actual estilo Freddie®
function getStamp(){
   return strval(date("YmdHis",mktime(date("H"),date("i"),date("s"),date("m"),date("d"),date("Y"))));
}

Hasta ahora ha funcionado bien; pero ahora necesito una unidad menor a los segundos para poderla incluir, como las decimas de segundo o, preferiblemente, las milesimas de segundo exactas del momento en el que llamo la función y asi incluirlas como otro numero mas al final de mi formato de timestamp (Restando año, mes, fecha y todas las demas, claro), pero al parecer la función date no incluye nada de esto y hasta ahora no he encontrado una solución "real"

¿Alguien tiene alguna idea de como podria hacerlo?
 _________________

Freddie
BOFH

Admin
clabLevel: 43453
Un avión, camino a tu casa
25 Tutoriales
6 Tips
43 Ejemplos

MP Email Web     Google Talk    
Volver arriba
Mensaje Publicado: Mar Sep 20, 2005 4:55 am     Citar   safari 
la mejor manera que se me ocurre definitivamente es cambiando tu formato de fecha en mysql por un tipo int 20 y usar microtime() en PHP.

Pero como no se puede cambiar el formato, puedes intentar que los segundos se guarden en un formato de numeracion 25 lo que da una capacidad de combinacion de 625 numeros (algo asi como hexadecimal pero en lugar de 16 es a 25) donde entrarian un equivalente de 600 decimales de segundos o 60 segundos con un decimal. Para convertir las bases puedes usar base_convert() en PHP para devolverlo en un formato decimal.

Es la unica manera que se me ocurre.
 _________________
AsFusion || Blog
DeviantArt || Ilustraciones
Tangamampilia || Portafolio

tangamampilia
.GAIA Developer


clabLevel: 203 Genero:Masculino
México, D.F.


MP Web         
Volver arriba
Mensaje Publicado: Mar Sep 20, 2005 7:03 am     Citar   firefox 
Bueno, acá va una primera aproximación....tengo PHP 4.3 así que tocó usar microtime() a la antigüa porque tengo mucho sueño como para instalar el 5 :p

Código :

function getStamp(){
  $now = (string)microtime();
  $now = explode(' ', $now);
  $mm = explode('.', $now[0]);
  $mm = $mm[1];
  $now = $now[1];
  $segundos = $now % 60;
  $segundos = $segundos < 10 ? "$segundos" : $segundos;
  return strval(date("YmdHi",mktime(date("H"),date("i"),date("s"),date("m"),date("d"),date("Y"))) . "$segundos$mm");
}
echo getStamp();

Sólo calculé segundos y micros porque eran los relevantes...para el resto si no vi problema de seguir usando date.

El formato sería YYYYMMDDHHMMSSmmmmmmmm

....conciencia tranquila Riendo
 _________________
No mates un zancudo con un cañón
Reglas del foroObtener ayuda efectiva

gersonm


clabLevel: 1835 Genero:Masculino
Al otro lado de la mira
3 Tutoriales
8 Tips
5 Ejemplos

MP Web         
Volver arriba
Mensaje Publicado: Mar Sep 20, 2005 7:34 pm     Citar   firefox 
Ese funciono perfecto gerson, thx miau
 _________________

Freddie
BOFH

Admin
clabLevel: 43453
Un avión, camino a tu casa
25 Tutoriales
6 Tips
43 Ejemplos

MP Email Web     Google Talk    
Volver arriba
Mensaje Publicado: Mar Sep 20, 2005 9:01 pm     Citar   firefox 

Código :

<?
function getStamp(){
   list($Mili, $bot) = explode(" ", microtime());
   $DM=substr(strval($Mili),2,4);
   return strval(date("Y").date("m").date("d").date("H").date("i").date("s") . $DM);
}
echo getStamp();
?>


Guiño
 _________________
Hemisferio derecho

Blog de la selección mexicana.

Dano
BOFH

Bastard Operators From Hell
clabLevel: 2858 Genero:Masculino

3 Tutoriales
7 Tips
10 Ejemplos

MP Web         
Volver arriba
Mensaje Publicado: Mar Sep 20, 2005 10:00 pm     Citar   firefox 
porque no usas solo time()
???
y luego lo extraes.
 _________________
jhony192 - cout << " Santificando mi alma, mi cuerpo, mi espiritu y mi corazón." << endl;Jedi U_U

jhony192


clabLevel: 786 Genero:Masculino
Desde el Untimo Peldaño de la Cima del Cielo
1 Tutoriales

MP Email Web   Skype  Google Talk  MSN Messenger  
Volver arriba
Mensaje Publicado: Mar Sep 20, 2005 10:10 pm     Citar   firefox 

jhony192 escribió:

porque no usas solo time()
???
y luego lo extraes.


Sería mas tardado parsear el time, que como lo escribí arriba. Además recuerda que necesitamos Milisegundos! Guiño
 _________________
Hemisferio derecho

Blog de la selección mexicana.

Dano
BOFH

Bastard Operators From Hell
clabLevel: 2858 Genero:Masculino

3 Tutoriales
7 Tips
10 Ejemplos

MP Web         
Volver arriba
Responder al tema    Foros de discusión -> PHP, MySQL, Linux y Software Libre Todas las horas son GMT
Página 1 de 1

Respuesta Rapida

  Citar el ultimo mensaje
Adjuntar tu firma

Mostrar mensajes de anteriores:
  

 


Cristalab BloodBerry Style © 2006 Cristalab
Powered by phpBB © 2001, 2002 phpBB Group