我定义了一个自定义帖子类型,它使用一个元字段来存储日期。
在我的功能中。php我有以下保存开始日期的代码。中发送的日期格式startdate
表单参数为2010/12/01 9:00 AM
add_action(\'save_post\', \'save_details\');
function save_details(){
global $post;
update_post_meta($post->ID, "startdate", $_POST["startdate"]);
}
我正在尝试输出一个包含所有事件的列表
startdate
晚于当前时间。
query_posts(array(
\'post_type\' => array(\'seminar\'),
\'meta_key=startdate\',
\'meta_value=\'.date("Y/m/d h:i A"),
\'meta_compare=>\'
));
这将列出所有事件,无论其开始日期如何。我做错了什么?
已解决:
由于某种原因,在我将代码更改为以下内容后,它就正常工作了。
$args = array(
\'post_type\' => array(\'seminar\'),
\'showposts\' => 3,
\'meta_key\' => \'startdate\',
\'meta_value\' => date("Y/m/d h:i A"),
\'meta_compare\' => \'>\',
\'orderby\' => \'meta_value\',
\'order\' => \'ASC\'
);
$seminars = get_posts($args);
我将选择@Rarst中的答案作为公认的答案,因为我认为我实际上在这里遇到了多个问题,但他的回答与标题best有关。
@sorich87对于如何将日期存储为时间戳有一个很好的观点,但最后,@Rarst是正确的,如果我为date()
函数,该函数与我在将数据存储到数据库时使用的格式相匹配,然后我应该能够比较数据。
谢谢你的帮助。