0

カスタムメタフィールドの投稿アイテムに割り当てられた時間をプルしているWordPressのカスタムクエリがあります。時間は次の形式で入力されます。

1:00 am、2:00am、1:00pm、2:00pm、3:00pmなど

クエリは今回の順序で投稿を表示しますが、次のように順序が狂って表示されます。

1:00 am、1:00pm、2:00am、2:00pm、3:00am、3:00pmなど。

1:00 am、2 :00am、3 :00am....11:00am、12:00pm、1:00pm、2:00pm、3:00pmなどの適切な順序で表示する必要があります。

単純に24時間制に切り替えることを考えましたが、慣れていないユーザーもいます。

これが私の質問です、誰かが解決策を手伝ってくれますか?

<ul>
<?php
$args=array(
  'taxonomy' => 'day',
  'term' => 'monday',
  'post_type' => 'schedule',
  'meta_key' => 'tr_show_time', 
  'orderby' => 'tr_show_time', 
  'order' => 'asc',  
  'posts_per_page' => 24,
  'caller_get_posts'=> 1
);
$my_query = null;
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post(); ?>
      <?php $show_name = get_post_meta( get_the_ID(), 'tr_show_name', true ); ?>
      <?php $show_time = get_post_meta( get_the_ID(), 'tr_show_time', true ); ?>
      <li>
        <?php echo $show_time;?> - <?php echo $show_name;?>
      </li>
      <?php endwhile; } wp_reset_query(); ?>
</ul>
4

2 に答える 2

0

jprofitがコメントセクションで述べたように、メタ値には24時間制を使用してください。次に、12時間の文字列にフォーマットするには、次のことを行う必要があります。

<?php
function twentyfourToTwelve($time)
{
    return date('g:i:sa', strtotime($time));
}
?>

時間を表示する必要がある場所、

<?=twentyfourToTwelve($postTime)?>
于 2012-05-22T05:52:41.957 に答える
-2

個人的には、PHPよりも簡単であることがわかったため、jQueryを使用してこれを解決することになりました。

このスクリプトと次のコードを使用しました。

http://benalman.com/projects/jquery-replacetext-plugin/

$("#whats-on-container *").replaceText( /00:00/gi, "12:00am" );
$("#whats-on-container *").replaceText( /01:00/gi, "1:00am" );
$("#whats-on-container *").replaceText( /02:00/gi, "2:00am" );
$("#whats-on-container *").replaceText( /03:00/gi, "3:00am" );
$("#whats-on-container *").replaceText( /04:00/gi, "4:00am" );
$("#whats-on-container *").replaceText( /05:00/gi, "5:00am" );
$("#whats-on-container *").replaceText( /06:00/gi, "6:00am" );
$("#whats-on-container *").replaceText( /07:00/gi, "7:00am" );
$("#whats-on-container *").replaceText( /08:00/gi, "8:00am" );
$("#whats-on-container *").replaceText( /09:00/gi, "9:00am" );
$("#whats-on-container *").replaceText( /10:00/gi, "10:00am" );
$("#whats-on-container *").replaceText( /11:00/gi, "11:00am" );
$("#whats-on-container *").replaceText( /12:00/gi, "12:00pm" );
$("#whats-on-container *").replaceText( /13:00/gi, "1:00pm" );
$("#whats-on-container *").replaceText( /14:00/gi, "2:00pm" );
$("#whats-on-container *").replaceText( /15:00/gi, "3:00pm" );
$("#whats-on-container *").replaceText( /16:00/gi, "4:00pm" );
$("#whats-on-container *").replaceText( /17:00/gi, "5:00pm" );
$("#whats-on-container *").replaceText( /18:00/gi, "6:00pm" );
$("#whats-on-container *").replaceText( /19:00/gi, "7:00pm" );
$("#whats-on-container *").replaceText( /20:00/gi, "8:00pm" );
$("#whats-on-container *").replaceText( /21:00/gi, "9:00pm" );
$("#whats-on-container *").replaceText( /22:00/gi, "10:00pm" );
$("#whats-on-container *").replaceText( /23:00/gi, "11:00pm" );
$("#whats-on-container *").replaceText( /24:00/gi, "12:00am" );
于 2012-05-22T15:23:54.420 に答える