web-dev-qa-db-ja.com

Googleサイトマップの日付形式

PHPのサイトマップの日付形式が必要です。

どうやってやるの ?

この出力は正しいですか?

<lastmod>2012-08-02EEST18:01:18+03:00</lastmod>
18
user1329212

タイムスタンプがある場合は、次のように日付を正しくフォーマットできます。

_<lastmod><?php echo date('c', $timestamp); ?></lastmod>
_

タイムスタンプはtime()(現在の時間)またはstrtotime()のようなUNIX tiemstampをフェッチするその他の方法です

34
Dunhamzzz

現在のタイムスタンプを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

[〜#〜]ソース[〜#〜]

20
Erfan Safarpoor

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
18
NXT

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());
10
xiatica

の古い推奨タイムスタンプ文字列を使用したため、この出力を取得しています

Y-m-dTH:i:sP.

ただし、必要なのは

Y-m-d\TH:i:sP

この単一のバックスラッシュが違いを生みます。ある時点で、大文字のTはPHPを表すタイムコードで特殊文字になりました。そのため、Tをエスケープしないと、レポートとまったく同じ結果になります。

3
AdamJones

質問がPHPに関するものであることは知っていましたが、このページはNode/JavaScriptのグーグルであることがわかりました。したがって、最も近いものはDate.toISOString()です。

var d = new Date();
d.toISOString(); // "2017-04-19T07:23:16.040Z"
3
Alex K

たくさんのフォーマットから選択できますdate() 関数でcパラメータを使用すると、推奨される形式が得られます。

2
John Conde

「EES」鉱山を削除2013-12-26T19:00:00-05:00のように動作します http://www.industry-automation-parts.com/1_e_0_sitemap.xml

1
user3152317

実際、これには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>

これがお役に立てば幸いです。ありがとう

0
Jodyshop

moment.js;

moment().format('YYY-MM-DDTHH:mm:ssZ')
0
Ahmet Şimşek