Selon le titre - quel format le type TIME dans une méta_query nécessite-t-il?
J'ai quelques champs personnalisés, date
et time
- le but est d'afficher les posts dated
aujourd'hui et à l'avenir jusqu'à l'heure précédant time
.
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'date',
'value' => date('Y-m-d',strtotime("today")),
'compare' => '>=',
'type' => 'DATE'
),
array(
'key' => 'time',
'value' => date('H:i', strtotime("now -1 hour")),
'compare' => '<=',
'type' => 'TIME'
)
)
La partie date
de la requête fonctionne bien, mais pas la requête time
- je soupçonne quelque chose à voir avec le format.
Le format de date et d’heure meta_query
requiert le même format que celui utilisé pour stocker les données des champs méta . Parfois, différents formats peuvent être comparés directement, mais la plupart du temps ils ne le sont pas. Un format recommandé à utiliser est le format MySQL:
Un autre format recommandé est l’horodatage UNIX; les deux peuvent être utilisés directement dans les requêtes de base de données avec des conditions de tri et de comparaison, mais si vous utilisez les formats MySQL, vous pouvez également reconnaître visuellement la date et l'heure.
De plus, vous devez noter que dans meta_query
( , citant du codex ):
Le 'type' DATE ne fonctionne avec la valeur de comparaison 'BETWEEN' que si la date est stockée au format AAAA-MM-JJ et testée avec ce format.
Vous devez donc stocker les dates au format AAAA-MM-JJ si vous souhaitez définir l'argument type
à DATE
.