Неправильная дата в RSS
Ребята, 3й день бьюсь и не могу разобраться, почему у меня в rss дата стоит на всех новостях:
<pubDate>Thu, 01 Jan 1970 03:33:40 +0300</pubDate>
Создал сниппет:<?php
setlocale(LC_ALL, 'en_US');
return strftime($options,$input);
В tpl прописал: [[+publishedon:dateLocale=`%a, %d %b %Y %H:%M:%S %z`]]
Пробовал сниппет такой:<?php
setlocale(LC_ALL, 'en_US.UTF-8');
if ( $val == '' ) $val=time();
if ($format == '' ) $format = "%a, %d %b %Y %H:%M:%S";
return strftime($format, $val);
Всё равно на всех новостях дата 1970 год. Подскажите, как исправить? Комментарии: 11
Код вызова и полный код шаблона в студию. Можно ещё showLog приложить.
Сниппет dateLocale:
<?php
setlocale(LC_ALL, 'en_US');
return strftime($options,$input);
Вызов: <?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>[[*pagetitle]]</title>
<link>[[~4? &scheme=`full`]]</link>
<description></description>
<ttl>120</ttl>
<atom:link href="[[~[[*id]]? &scheme=`full`]]" rel="self" type="application/rss+xml" />
[[!getResources?
&tpl=`rssTpl`
&parents=`4`
&depth=`5`
&limit=`20`
&includeContent=`1`
&includeTVs=`1`
&showHidden=`1`
&hideContainers=`1`
&showLog=`1`
]]
</channel>
</rss>
rssTpl: <item>
<title>[[+pagetitle]]</title>
<link>[[++site_url]][[~[[+id]]]]</link>
<description>[[+description]]</description>
<enclosure url="[[+tv.imageNews]]"></enclosure>
<pubDate>[[+publishedon:dateLocale=`%a, %d %b %Y %H:%M:%S %z`]]</pubDate>
</item>
А так?
[[!dateLocale? &val=`[[+publishedon]]`]]
Вообще не отображается
[[+publishedon]] — так что выводит?
[[+publishedon]] выводит правильную дату
<pubDate>2021-02-05 09:47:00</pubDate>
Проверил на тестовом сайте
Всё корректно выводит. Нигде кириллица не затесалась часом?
[[!dateLocale? &val=`[[+publishedon]]`]]
Всё корректно выводит. Нигде кириллица не затесалась часом?
А как можно проверить, есть ли кириллица где-то?
Вы копировали мой код или сами набирали?
Проверил сервисом, кириллицы нету.
Вы копировали мой код или сами набирали?
Проверил сервисом, кириллицы нету.
Сделал на другом сайте и тоже самое 1970 год!
Сам сниппет отдельно проверяли? Корректно выводит дату?
Я про этот говорю. Первый — укороченный — не будет работать.
<?php
setlocale(LC_ALL, 'en_US.UTF-8');
if ( $val == '' ) $val=time();
if ($format == '' ) $format = "%a, %d %b %Y %H:%M:%S";
return strftime($format, $val);
Я про этот говорю. Первый — укороченный — не будет работать.
Проблему решил. фуххх!
Сниппет стоит укороченный.
Спасибо большое, что откликнулись!
Сниппет стоит укороченный.
<?php
setlocale(LC_ALL, 'en_US');
return strftime($options,$input);
В rssTpl:<pubDate>[[+publishedon:dateLocale=`%a, %d %b %Y %H:%M:%S %z`]]</pubDate>
Заменил [[!getResources? на [[!pdoPage и всё заработало.Спасибо большое, что откликнулись!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.