Удалить время из <pubDate>PHP RSS-канал - PullRequest
0 голосов
/ 01 апреля 2012

У меня есть записи без прикрепленного времени, поэтому с помощью RSS-канала я получаю только 00:00.

Мне нужна помощь в настройке этого кода, чтобы удалить время, но сохранить дату.

Любая помощь была бы великолепна, так как я играл с ней слишком долго:)

 $get_courses = "SELECT 
     courses.course_id, 
     DATE_FORMAT(courses.date_added,'%a %b %e %Y') as formatted_date_added, 
     courses.course_type, 
     courses.start_date, 
     location_name, 
     price, 
     duration 
 FROM courses 
 JOIN addresses ON courses.course_get_address_id = addresses.address_id 
 WHERE courses.active = 'Active' 
 ORDER BY courses.date_added DESC 
 LIMIT 30";

XML

 '<pubDate>'.$course['formatted_date_added'].' GMT</pubDate>'

Ответы [ 3 ]

1 голос
/ 01 апреля 2012

Измените

DATE_FORMAT(courses.date_added,'%a %b %e %Y') as formatted_date_added

на

UNIX_TIMESTAMP(courses.date_added) as formatted_date_added

и в PHP:

if (date("H:i", $tuple["when"]) == "00:00")
    // without time
    echo '<pubDate>'.strftime('%a %b %e %Y', 
        $course['formatted_date_added']).' GMT</pubDate>';
else
    // with time
    echo '<pubDate>'.strftime('%a %b %e %Y %r', 
        $course['formatted_date_added']).' GMT</pubDate>';

Или просто выведите

'<pubDate>'.strftime('%a %b %e %Y', $course['formatted_date_added']).' GMT</pubDate>'

, если выникогда не будет иметь информацию о времени.

1 голос
/ 01 апреля 2012

Вместо того, чтобы извлекать дату таким образом, лучше пусть PHP сделает это.

'<pubDate>'. date( "d-m-Y", strtotime( $course['formatted_date_added'] ) ) . ' GMT</pubDate>';

РЕДАКТИРОВАТЬ

Итак, измените ваш SELECT, как показано ниже:

SELECT courses.course_id, 
 courses.date_added AS formatted_date_added, courses.course_type, courses.start_date, 
 location_name, price, duration 
FROM courses <rest is fine, keep it intact>
0 голосов
/ 09 мая 2012

Есть PHP-функции для управления форматом даты.Мне нравится использовать следующий код, чтобы поиграть с разными форматами даты.

<?php
$date_str= "Mon Apr 23 2012";
$desired_date_format= "Y-m-d";
echo $new_date_str = change_date_format($desired_date_format,$date_str);

function change_date_format($date_format, $date_str)
{
    return date($date_format,strtotime($date_str));
}

?>

...