Автор Тема: Обнаружена неверная дата  (Прочитано 3783 раз)

24 Октябрь 2013, 17:42:10
  • Фрилансер
  • *
  • Сообщений: 107
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • "Караван Бусин" украшения Пандора
Вгугле в  "Инструменты для веб-мастеров" - выдает такие ошибки:
Обнаружена неверная дата. Исправьте дату или ее формат перед повторной передачей.  569 штук.
Родительский тег: url
Тег: lastmod
Значение: 2013-10-22 13:26:02

Может кто с таким сталкивался?

Шармы, бусины, браслеты Пандора.
www.karavanbusin.com
24 Октябрь 2013, 18:53:40
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Было такое. Главное что файлы sitemap проходят проверку на валидность. Все нормально. А в самом google пишет bad data format.
Сделал так. Удалил старые файлы "..._sitemap.xml", переустановил модуль, заново создал карту сайта. Все работает. Ничего не менял.
25 Октябрь 2013, 11:18:56
Ответ #2
  • Фрилансер
  • *
  • Сообщений: 107
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • "Караван Бусин" украшения Пандора
спасибо. Попробую.
Шармы, бусины, браслеты Пандора.
www.karavanbusin.com
25 Октябрь 2013, 13:01:39
Ответ #3
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102503
  • Репутация: +34219/-0
    • Просмотр профиля
Нужно изменить формат представления даты - date('c')
В файле  /modules/gsitemap/gsitemap.php находим код (для товаров, категорий, производителей..)
if (!$this->_addLinkToSitemap($link_sitemap, array('....
        'lastmod' => $...->date_upd,...
Изменяем
if (!$this->_addLinkToSitemap($link_sitemap, array('....
        'lastmod' =>date('c',strtotime($...->date_upd)),...
25 Октябрь 2013, 13:15:51
Ответ #4
  • Фрилансер
  • *
  • Сообщений: 107
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • "Караван Бусин" украшения Пандора
 и так попробовал. Жду завтра - я так понимаю что гугл не сразу сканирует его... пока что все ошибки светятся...
Шармы, бусины, браслеты Пандора.
www.karavanbusin.com
25 Октябрь 2013, 13:17:32
Ответ #5
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102503
  • Репутация: +34219/-0
    • Просмотр профиля
Если после изменений ошибка осталась, то сделайте следующее
1. Удалите все файлы "xxx_sitemap.xml" этого модуля.
2. Проверьте таблицу товаров "ps_product_shop" в базе данных, данные в полях  "date_add" и "date_upd" (должны быть заполнены).
3. Заново сгенерируйте файлы "xxx_sitemap.xml" с помощью этого модуля.
4. Укажите новый индексный файл карты сайта в инструментах вебмастера "Х_index_sitemap.xml".
25 Октябрь 2013, 16:01:24
Ответ #6
  • Фрилансер
  • *
  • Сообщений: 176
  • Репутация: +0/-0
    • Просмотр профиля
Проблема с gsitemap возникла после смены хостинга.
Написал в службу поддержки. Они сказали, что в модуле ничего менять не нужно. Только изменили setlocale и все заработало.
25 Октябрь 2013, 16:08:11
Ответ #7
  • Фрилансер
  • *
  • Сообщений: 107
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • "Караван Бусин" украшения Пандора
Проблема с gsitemap возникла после смены хостинга.
Написал в службу поддержки. Они сказали, что в модуле ничего менять не нужно. Только изменили setlocale и все заработало.
Но я не менял хостинг -  просто обновили версию до 1,5,6...

там получается есть два файла :
1_index_sitemap.xml
и
1_ru_0_sitemap.xml

Первый показывал ошибки - второй нет.

Теперь уже оба без ошибок.

Всем огромное спасибо.
Шармы, бусины, браслеты Пандора.
www.karavanbusin.com
25 Октябрь 2013, 16:33:33
Ответ #8
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Проблема не в локали, а в модуле.
Ошибка - Invalid date возникает при неправильном формате.
Цитировать
Your Sitemap contains one or more invalid dates.
This could be because a date is in the incorrect format, or the date itself is not valid. Dates must use W3C Datetime encoding, although you can omit the time portion if you wish. For example:

2005-02-21
2005-02-21T18:00:15+00:00

Specifying time is optional (the time defaults to 00:00:00Z), but if you do specify a time, you must also specify a timezone.
В версии 2.3 модуля автор формировал показ дат так
$product->date_updт.е. в формате даты сохраненной в базе данных, в таком "2005-02-21 18:00:15".
Нужно было заменить вывод на
date ('Y-m-d') = 2005-02-21
или
date ('c') = 2005-02-21T18:00:15+00:00




В файле  /modules/gsitemap/gsitemap.php в фукции
private function _addSitemapNode($fd, $loc, $priority, $change_freq, $last_mod = NULL)
{
заменить
($last_mod ? '<lastmod>'.$last_mod.'</lastmod>'на
($last_mod ? '<lastmod>'. date('c', strtotime($last_mod)) .'</lastmod>'
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
26 Октябрь 2013, 15:33:36
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
В файле  /modules/gsitemap/gsitemap.php в фукции
private function _addSitemapNode($fd, $loc, $priority, $change_freq, $last_mod = NULL)
{
заменить
($last_mod ? '<lastmod>'.$last_mod.'</lastmod>'на
($last_mod ? '<lastmod>'. date('c', strtotime($last_mod)) .'</lastmod>'
+ Проверено, работает.
На оф.форуме тоже предлагают решение этой проблемы, такое как написал админ форума, но менять нужно в нескольких местах.
Метод mAgency лучше, менять только в 1 месте.