如何在圈子之外获得发布后的日期?

时间:2012-06-19 作者:dev-jim

我需要调出帖子发布日期,以使帖子自动过期。问题是我找不到正确的出版日期。

这是我的代码:

 global $wpdb;

$post_ids = $wpdb->get_results( "SELECT ID FROM $wpdb->posts WHERE post_status =\'publish\'" );

foreach($post_ids as $id){

      $postdate = get_the_date("Y-m-d",$id ); //here is what I can figure out
       .......
      ......etc
}
当我回显$postdate时,它显示了一个错误的日期。不是wp\\U posts表中存在的日期。

我怎样才能正确地得到日期?

4 个回复
最合适的回答,由SO网友:Stephen Harris 整理而成

get_the_date 必须在循环内使用。供环路外使用get_the_time.

$posts = get_posts(array(\'numberposts\'=>-1)); //Get all published posts
foreach ($posts as $post){
    echo get_the_time(\'Y-m-d\', $post->ID); //Echos date in Y-m-d format.
}
考虑更换\'Y-m-d\' 在本例中get_option(\'date_format\') 因为这将根据wp admin中的日期格式设置显示日期。

SO网友:Uriahs Victor

您可以使用get_post()get_post_field() 为此,两者都在循环之外工作。

$post_object = get_post($id);
$post_date = date( \'F jS, Y\', strtotime( $post_object->post_date ) );
get\\u post返回的值的完整列表:

WP_Post Object
(
    [ID] =>
    [post_author] =>
    [post_date] => 
    [post_date_gmt] => 
    [post_content] => 
    [post_title] => 
    [post_excerpt] => 
    [post_status] =>
    [comment_status] =>
    [ping_status] => 
    [post_password] => 
    [post_name] =>
    [to_ping] => 
    [pinged] => 
    [post_modified] => 
    [post_modified_gmt] =>
    [post_content_filtered] => 
    [post_parent] => 
    [guid] => 
    [menu_order] =>
    [post_type] =>
    [post_mime_type] => 
    [comment_count] =>
    [filter] =>
)

SO网友:Osama Elzero

一些现代的灵魂

解决方案一

<?php echo get_the_date(\'j F Y\', get_the_ID()) ?>
解决方案二

<?php the_time(get_option(\'date_format\')) ?>

SO网友:Gembel Intelek

像这样试试

$getPosts = $wpdb->get_results( 
"
    SELECT ID, post_date,post_title
    FROM $wpdb->posts
    WHERE post_status = \'publish\' 
        AND post_type = \'post\'
        ORDER BY ID ASC
    "
);

foreach ( $getPosts as $myPost ) {
    $id = $myPost->post_date;
    echo $myPost->ID.\' | \'. $myPost->post_title.\' | \'. get_the_date("Y-m-d",$id ).\'<br />\';
}
编辑

get_the_time 返回当前帖子在PHP中使用的时间。它不显示时间。要显示帖子的时间,请使用\\u time()。此标记必须在循环中使用。

get_the_date get\\u The\\u date template标记检索当前$post的写入日期。与\\u date()不同,此标记将始终返回日期。使用“get\\u the\\u date”筛选器修改输出。

我错过什么了吗?

相关推荐

如何通过jQuery Datepicker搜索帖子?

我正在WordPress网站上工作,我有自己的搜索筛选页面,在那里我添加了jquery日期选择器,现在我想按日期选择器搜索帖子?Html Codescript> $(function() { jQuery( \"#datepicker-13\" ).datepicker({ dateFormat : \"yy-mm-dd\" }); $(\"#datepicker-13\").datepicker().datepick