Глюки с датами

А можно ли как-то сделать чтобы post_new->post_date вместо формата 2009-03-16 20:04:00 выодило дату в нужном мне формате, типа march 16, 2009 и без времени?

Может можно заменить какой-нибудь другой фунцией, которая бы без глюков работала бы в get_posts?

Можно, читай тут – http://codex.wordpress.org/Formatting_Date_and_Time

Можно, читай тут - http://codex.wordpress.org/Formatting_Date_and_Time

Нет, вот у меня такой цикл

<?php
                $posts_new = get_posts('category=1&numberposts=3');
                foreach ($posts_new as $post_new) : 

// Открываем ссылку
                    echo '<a href="'; 
                    echo get_permalink($post_new->ID);
                    echo '">';

// Формируем дату
echo '<div class="'; 
echo 'date">'; 
echo  $post_new->post_date; 
// setlocale(LC_ALL, 'nl_NL.ISO-8859-15@euro');
// echo strftime('%A %d %B, %Y',strtotime(get_the_time('m/d/Y')));

echo '</div>';


// Заголовок
echo '<h3>'; 
                    echo $post_new->post_title;
echo '</h3>'; 


// контент              
                    echo '<div>';
                    echo $post_new->post_excerpt;
                    echo '</div>';

// закрываем ссылку
echo '</a>';


                     /* if ( preg_match('/<!--more(.*?)?-->/', $post_new->post_content, $matches) )
                       list($post_new->post_content,$junk) = explode($matches[0], $post_new->post_content, 2); */

                    
                endforeach;
                ?>

Если раскоментировать вот эи строки

// setlocale(LC_ALL, 'nl_NL.ISO-8859-15@euro');
// echo strftime('%A %d %B, %Y',strtotime(get_the_time('m/d/Y')));

то короме того что оно выводит дату на непоянтно каком языке (я полнял это это меняется изменением параметорв setlocale, хотяі вообще непорнятно зачем оно если выводит и беэ этой строки), оно еще и почему-то подставляет под все посты одну дату. вот пример
_http://trident-invest.com/category/news/
(акцент на самый страрый пост)

Можете стравнить даты постов и даты в левом сайдбаре. там я специально отсаивил два способа вывода – первый – правильный но некрасивій с помощью $post_new->post_date, а второй – красивій но неправильный с помощью strftime(‘%A %d %B, %Y’,strtotime(get_the_time(‘m/d/Y’)));

Так как же вывести в моем цикдле дату так чтобы и красиво, и правдиво? ))) ((((

Не, ну как ТАКОЕ может быть? http://clip2net.com/clip/m5763/1237285262-clip-9kb.png

Посмотрите http://codex.wordpress.org/Function_Reference/mysql2date

Ээээээ…. а как этим пользоваться? 🙁

В том то и фишка что при использовании the_date оно отображает неправильную дату. Причем непонятно откуда оно ее берет…
Так ведь не должно быть! Должна быть причина…

Ага, в кодексе есть примечание что если в цикле есть несколько постов опубликованных в один и тот же дегнь то отображаеццо только первая дата и надо использовать the_date, но я попробовал – снова 5 января…. Откуда оно его взяло? ААААААА… Что делать?? 🙁

the_date и the_time берут дату из глобальной переменной $post. Телепатией их Создатель не наделил.

Наверно так:
mysql2date(‘d/m/Y’, $post_new->post_date)

Спасибо!

Странно, я вот переписал цикл на такой и все врое раотает правильно. Почему оно не хотело работать в предыдущем варианте я наверное еще не дорос понимать 🙁

<?php
 $postslist = get_posts('category=1&numberposts=3');
 foreach ($postslist as $post) : 
    setup_postdata($post);
 ?> 

<a href="<?php the_permalink() ?>" id="post-<?php the_ID(); ?>" rel="bookmark" title="Link: <?php the_title(); ?>">

<div class="date"><?php the_time('F j, Y'); ?></div>

<h3><?php the_title(); ?></h3>   
<div><?php the_excerpt(); ?></div>

</a>

<?php endforeach; ?>

В заклинаниях каждое слово, каждая буква имеют принципиальное значение.

🙂

Anonymous
Отправить
Ответ на: