PHPのサイトマップの日付形式が必要です。
どうやってやるの ?
この出力は正しいですか?
<lastmod>2012-08-02EEST18:01:18+03:00</lastmod>
タイムスタンプがある場合は、次のように日付を正しくフォーマットできます。
_<lastmod><?php echo date('c', $timestamp); ?></lastmod>
_
タイムスタンプはtime()
(現在の時間)またはstrtotime()
のようなUNIX tiemstampをフェッチするその他の方法です
現在のタイムスタンプをW3C Datetimeエンコーディング(sitemap.xmlファイルで使用される)でフォーマットするには、次のパラメーターを使用します。
echo date('Y-m-dTH:i:sP', time());
PHP5以降では、c形式の文字を使用してまったく同じ文字列を出力することもできます。
echo date('c',time());
これらは両方とも以下を出力します:
2009-04-03T11:49:00+01:00
MySQLの日時形式からサイトマップでlastmodに必要な形式に変換するには、PHP以下のコードを使用します。
$lastmod = '2012-11-28 10:53:17'; //MySQL datetime format
$datetime = new DateTime($lastmod);
$result = $datetime->format('Y-m-d\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を3つのオプションのいずれかでフォーマットできること
TZD =時間帯指定子(Zまたは+ hh:mmまたは-hh:mm)
デフォルトのフォーマットからスペースを削除する必要があります。文字「T」は時間の前に挿入する必要があり、TZDはサポートされているタイプのいずれかに一致する必要があります。
したがって、現在のタイムスタンプをフォーマットするには、次のパラメーターを使用します。
echo date('Y-m-dTH:i:sP', time());
PHP5以降では、c形式の文字を使用してまったく同じ文字列を出力することもできます。
echo date('c',time());
の古い推奨タイムスタンプ文字列を使用したため、この出力を取得しています
Y-m-dTH:i:sP.
ただし、必要なのは
Y-m-d\TH:i:sP
この単一のバックスラッシュが違いを生みます。ある時点で、大文字のTはPHPを表すタイムコードで特殊文字になりました。そのため、Tをエスケープしないと、レポートとまったく同じ結果になります。
質問がPHPに関するものであることは知っていましたが、このページはNode/JavaScriptのグーグルであることがわかりました。したがって、最も近いものはDate.toISOString()
です。
var d = new Date();
d.toISOString(); // "2017-04-19T07:23:16.040Z"
たくさんのフォーマットから選択できます 。 date()
関数でc
パラメータを使用すると、推奨される形式が得られます。
「EES」鉱山を削除2013-12-26T19:00:00-05:00のように動作します http://www.industry-automation-parts.com/1_e_0_sitemap.xml
実際、これには2つの方法があります。
最初のアプローチは、値を与えた「C」文字を含むXMLサイトマップに有効な日付を設定することです:( 2019-06-03T17:30:21-05:00)。 ここでテスト
<lastmod>'.date('c', strtotime($row['date'])).'</lastmod>
2番目のアプローチは、RSSサイトマップに有効な日付を設定することです。これには、値を指定した「r」文字が含まれます:( 2019-03-07T17:55:44 + 00:00)。
<pubDate>'.date('r', strtotime($row['date'])).'</pubDate>
これがお役に立てば幸いです。ありがとう
moment.js;
moment().format('YYY-MM-DDTHH:mm:ssZ')