は日付を比較することができるようにするには、[Y/M/Dフォーマット(またはY-M-D ...など)を使用する必要があります。あなたの引数で
、SQLクエリは次のようになります。たとえば18/03/2012 >= 17/04/2012
のため、間違っている
SELECT SQL_CALC_FOUND_ROWS wp_posts.* FROM wp_posts INNER JOIN wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id) WHERE 1=1 AND wp_posts.post_type = 'live' AND (wp_posts.post_status = 'publish') AND ((wp_postmeta.meta_key = 'date' AND CAST(wp_postmeta.meta_value AS DATE) >= '17/04/2012')) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 10
が真である...
あなたはY/M/Dの形式で、次の引数を使用する場合:
$args = array(
'post_type' => 'live',
'meta_query' => array(
array(
'key' => 'date',
'value' => date('Y/m/d',time()),
'compare' => '>=',
)
)
);
これは期待通りに動作します:
SELECT SQL_CALC_FOUND_ROWS wp_posts.* FROM wp_posts INNER JOIN wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id) WHERE 1=1 AND wp_posts.post_type = 'live' AND (wp_posts.post_status = 'publish') AND ((wp_postmeta.meta_key = 'date' AND CAST(wp_postmeta.meta_value AS CHAR) >= '2012/04/17')) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 10
をだから、
:
- あなたはデータベース
- であなたの日付値を変更することができたり、カスタムフィールドはjqueryのUIのカレンダーを使用して更新される比較
前にこれらの値を変換するために、独自のクエリを構築することができます。 dateのデータベースエントリは、同じ形式の日付( 'd/m/Y'、time())です。 – jamessy
d/m/Yは日付を比較するのに良い選択ではありません、あなたはY/m/dを使用する必要があります – soju