Мне нужен формат даты для sitemaps в php.
Как я могу это сделать ?
Правильно ли этот выход?
<lastmod>2012-08-02EEST18:01:18+03:00</lastmod>
Если у вас есть метка времени, вы можете правильно отформатировать дату следующим образом:
<lastmod><?php echo date('c', $timestamp); ?></lastmod>
Временной меткой может быть time()
(для текущего времени) или какой-либо другой способ получения unix tiemstamp, например strtotime()
Чтобы отформатировать текущую временную метку в кодировке W3C Datetime (используется в файлах sitemap.xml), используйте следующие параметры.
echo date('Ym-dTH:i:sP', time());
Начиная с PHP5 вы также можете использовать символ c-формата для печати той же строки.
echo date('c',time());
Они оба распечатали следующее:
2009-04-03T11:49:00+01:00
ИСТОЧНИК
Чтобы преобразовать из формата даты и времени MySQL в тот, который необходим для lastmod в файлах Sitemap, просто используйте приведенный ниже код PHP.
$lastmod = '2012-11-28 10:53:17'; //MySQL datetime format $datetime = new DateTime($lastmod); $result = $datetime->format('Ymd\TH:i:sP'); echo $result; //2012-11-28T10:53:17+01:00
Согласно Google , он является необязательным полем, которое, если предусмотрено, должно быть отформатировано как
YYYY-MM-DDThh:mmTZD
Экспортирование SQL-данных по умолчанию зависит от настроек языка для вашего сервера и может включать пробелы и характеристики TZD, такие как:
2014-09-19 10:33:05 UTC
W3 указывает, что TZD можно отформатировать в любом из трех вариантов
TZD = обозначение часового пояса (Z или + hh: mm или -hh: mm)
Любые пробелы от форматирования по умолчанию должны быть удалены; символ «T» должен быть вставлен до времени, а TZD должен соответствовать одному из поддерживаемых типов.
Поэтому, чтобы отформатировать текущую временную метку, используйте следующие параметры.
echo date('Ym-dTH:i:sP', time());
Начиная с PHP5 вы также можете использовать символ c-формата для печати той же строки.
echo date('c',time());
У вас есть много форматов на выбор . Используя параметр c
с функцией date()
вы получите рекомендуемый формат для вас.
удалить «EES» Mine – это как 2013-12-26T19: 00: 00-05: 00 и работает http://www.industry-automation-parts.com/1_e_0_sitemap.xml
Вы получаете этот результат, потому что вы использовали старую рекомендованную строку timestamp
Ym-dTH:i:sP.
Однако, что вам нужно
Ymd\TH:i:sP
Эта единственная обратная косая черта изменит ситуацию. В какой-то момент капитал T стал особым символом в PHP, обозначающим timecode, поэтому, если вы не избежите T, вы получите именно то, что ваши отчеты.
Я знаю, что вопрос был о PHP, но я нашел эту страницу для поиска в Node / JavaScript. Таким образом, ближайший эквивалент Date.toISOString()
:
var d = new Date(); d.toISOString(); // "2017-04-19T07:23:16.040Z"