Date MYSQL vers Date ActionScript avec AMFPHP

11 views
Skip to first unread message

eKameleon

unread,
Oct 21, 2009, 4:59:55 AM10/21/09
to VEGAS - ECMASCript & ActionScript OpenSource framework
Note pour moi même :)

Code PHP dans un service AMFPHP remoting :

$date = strtotime($row['date']) ;
$date = date("m/d/Y H:i:s", $date);
$vo->date = $date ;

Avec $row['date'] le résultat d'une requête MYSQL avec un champ de
type DateTime dedans.

Et dans l'AS3 il reste à créer un VO avec une propriété virtuelle
"date" qui transforme le String en new Date() automatiquement.

Bon je sais cela ne fait pas avancer grand chose mais je mets cela ici
pour le retrouver en cas d'oubli ;)

PS : par contre si vous avez une technique mieux foutu je suis
preneur ;)

eKA+ :)

Xavier MARTIN

unread,
Oct 21, 2009, 5:49:23 AM10/21/09
to veg...@googlegroups.com
ou fait un UNIX_TIMESTAMP( mysql_date_field ) dans ta requete.
recupere ca * 1000 ( pour avoir les millisecondes pour flash )
et utilise ca pour recree ta date en as3.
non?
----------------------------------------------------------------------
Xavier MARTIN aka zeflasher or xxlm
Visit my website if you love flash:
http://www.webbymx.net
http://dev.webbymx.net
----------------------------------------------------------------------


2009/10/21 eKameleon <ekam...@gmail.com>

ekameleon

unread,
Oct 21, 2009, 6:54:41 AM10/21/09
to veg...@googlegroups.com
Hello :)

J'ai essayé le UNIX_TIMESTAMP dans un SELECT dans un service AMFPHP mais pour le moment il me renvoi rien ?? faudra que je pousse mes tests à ce niveau là... sinon en parlant de timestamp tu as raison il est plus simple dans mon code plus haut de taper juste :

$vo->date = strtotime($row['date'])  * 1000 ;

La méthode php strtotime renvoi un nombre de secondes depuis 1970 donc faut multiplier par 1000 pour avoir les ms... du coup cela reste simple de manipuler au niveau du PHP pour moi.

Et du coup dans le new Date() côté flash récupère le timestamp depuis 1970 directement :)

EKA+ :)

Xavier MARTIN

unread,
Oct 21, 2009, 5:17:55 PM10/21/09
to veg...@googlegroups.com
:)
Par contre je vois pas pourquoi tu ne recevrai rien en faisant un UNIX_TIMESTAMP sur ton champ de type datetime. :/
Weird

++



----------------------------------------------------------------------
Xavier MARTIN aka zeflasher or xxlm
Visit my website if you love flash:
http://www.webbymx.net
http://dev.webbymx.net
----------------------------------------------------------------------


2009/10/21 ekameleon <ekam...@gmail.com>

NairuS

unread,
Oct 22, 2009, 8:18:48 AM10/22/09
to veg...@googlegroups.com
Hello,

Le 21 octobre 2009 23:17, Xavier MARTIN <zefl...@gmail.com> a écrit :
:)
Par contre je vois pas pourquoi tu ne recevrai rien en faisant un UNIX_TIMESTAMP sur ton champ de type datetime. :/
Weird

++



----------------------------------------------------------------------
Xavier MARTIN aka zeflasher or xxlm
Visit my website if you love flash:
http://www.webbymx.net
http://dev.webbymx.net
----------------------------------------------------------------------


2009/10/21 ekameleon <ekam...@gmail.com>

Hello :)

J'ai essayé le UNIX_TIMESTAMP dans un SELECT dans un service AMFPHP mais pour le moment il me renvoi rien ?? faudra que je pousse mes tests à ce niveau là... sinon en parlant de timestamp tu as raison il est plus simple dans mon code plus haut de taper juste :


Comment tu as construit ta requête ?
Car en faisant comme ceci: SELECT UNIX_TIMESTAMP(my_field) FROM my_table
Je récupère bien des timestamp de mon champ.

Si tu fais un SELECT *,  UNIX_TIMESTAMP(my_field) ajout un alias au timestamp.
SELECT *,  UNIX_TIMESTAMP(my_field) as Time

Ensuite tu dois pouvoir le récupérer comme ça:
$vo->date = $row['Time']  * 1000 ;

PS: Au passage, je préfère la solution d'eKa. Il me semble plus cohérent de manipuler les dates côté PHP.

A++
NairuS ;)

samuel

unread,
Oct 22, 2009, 9:59:46 AM10/22/09
to veg...@googlegroups.com
Hola,
je pense aussi que le problème vient de la requête.
mais je propose carrément d'aller au plus vite ( ou simple ) avec un : 
SELECT UNIX_TIMESTAMP(my_field) * 1000 FROM my_table
:)

Le 22 octobre 2009 14:18, NairuS <nicolas...@gmail.com> a écrit :
SELECT UNIX_TIMESTAMP(my_field) FROM my_table

ekameleon

unread,
Oct 22, 2009, 10:02:09 AM10/22/09
to veg...@googlegroups.com
Hello :)

Je teste dans AMFPHP et je me demande si c'est pas justement AMFPHP qui me fou le bordel :) Je verrais ce qui ne va ce week end ;)

AMFPHP réagit parfois étrangement avec le class mapping ...

EKA+ :)

2009/10/22 samuel <zoul...@gmail.com>

Xavier MARTIN

unread,
Oct 22, 2009, 4:21:49 PM10/22/09
to veg...@googlegroups.com
PS: Au passage, je préfère la solution d'eKa. Il me semble plus cohérent de manipuler les dates côté PHP.
??? cad?

Samuel> yes exactement. ( en donant un alias aussi )

----------------------------------------------------------------------
Xavier MARTIN aka zeflasher or xxlm
Visit my website if you love flash:
http://www.webbymx.net
http://dev.webbymx.net
----------------------------------------------------------------------


2009/10/23 ekameleon <ekam...@gmail.com>

NairuS

unread,
Oct 23, 2009, 4:42:23 AM10/23/09
to veg...@googlegroups.com
Hello,

Le 22 octobre 2009 22:21, Xavier MARTIN <zefl...@gmail.com> a écrit :
PS: Au passage, je préfère la solution d'eKa. Il me semble plus cohérent de manipuler les dates côté PHP.
??? cad?


En faisant : $vo->date = strtotime($row['date'])  * 1000 ;
Ca me parait plus lisible et plus cohérent que de le faire dans la requête SQL.

Mais c juste une opinion perso :)
Je ne pense pas qu'on gagne énormément en vitesse.
Après le choix se fait sur la maintenance du code et de l'architecture.

Perso, je préfère utiliser les fonctions MySQL sur des requêtes très spécifiques.
Dans ce cas, on renvoie un champ en plus dans le résultat MySQL.

Est-ce réellement nécessaire ?
 
A++ 
NairuS
Reply all
Reply to author
Forward
0 new messages