Bonjour,
Ca fait un moment que je tourne en rond. J'ai besoin d'extraire un enregistrement de ma base de données selon un champs datetime. Jusque la c'est assez simple.
Ca se complique, car je ne peux pas savoir exactement l'heure (décalage horaire). L'enregistrement peut être stocké selon:
- 2014-03-16 16:59:29
- 2014-03-16 17:59:29
- 2014-03-16 18:59:29
- .... ou pire :
- 2014-03-17 00:59:29
MAIS il me faut connaitre exactement les minutes et secondes.
Actuellement je fait un truc comme ca:
Evidement je pourrait tester tous les fuseaux horaires ... mais c'est pas terrible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $expire1 = $expire[2].'-'.$expire[1].'-'.$expire[0].' '.$expire[3].':'.$expire[4].':'.$expire[5] ; // 2014-03-16 16:59:29 $expire2 = $expire[2].'-'.$expire[1].'-'.$expire[0].' '.($expire[3]+1).':'.$expire[4].':'.$expire[5] ; // 2014-03-16 17:59:29 $query = 'SELECT id FROM table WHERE (date_end='.$db->quote($expire1). ' OR date_end='.$db->quote($expire2) .')' ;
L'idéal serai d'utiliser like avec les heures et un AND pour le jour +/- 1 jour, quelque chose du genre:
Et meme ca j'arrive pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $testheure = $expire[2].'-'.$expire[1].'-'.$expire[0].' %%:'.$expire[4].':'.$expire[5] ; // 2014-03-16 %%:59:29 $testjour = $expire[2].'-'.$expire[1].'-'.$expire[0] ; // 2014-03-16 $query = 'SELECT id FROM table WHERE (date_end LIKE '.$db->quote($testheure).' AND date_end= TODAY(1, '.$db->quote($testjour).') )' ;
Si quelqu'un a une idée, ça m'enlèverai une épine du pied, et une grosse !
Cédric
Partager