web-dev-qa-db-ja.com

XMLサイトマップの最終変更(lastmod)時間を適切にフォーマットする方法

サイトで新しいコンテンツが追加または更新されるたびに自動的にsitemap.xmlを更新するアプリを作成しています。

Googleのベストプラクティスによると、<lastmod></lastmod>タグの形式は次のとおりです。

<lastmod>2011-06-27T19:34:00+01:00</lastmod>

私の質問は、時間のフォーマット自体に関係しています。 2011-06-27T19:34:00の部分を理解しました。私が理解していないのは+01:00で、これは+/- UTCであると想定しています。

これは正しい仮定ですか?

私のタイムゾーンテーブルは次のようになります。

enter image description here

したがって、サイトが#4アフガニスタンを拠点としている場合、正しい時間は次のようになります:2011-06-27T19:34:00+04:00

サイトが#6アラスカ標準時に基づいている場合、正しい時間は次のようになります:2011-06-27T19:34:00-09:00

私の仮定は正しいですか、それとも+01:00を正しく理解していませんか?

16
petebolduc

lastmodタグはシットマップではオプションであり、ほとんどの場合、検索エンジンでは無視されます。これは、ウェブマスターが正確さを保つために恐ろしい仕事をしているためです。いずれの場合でも、それを使用することができ、形式は機能と要件によって異なります。できなかったり、したくない場合は、実際にはタイムゾーンオフセットを指定する必要はありません。単純なYYYY-MM-DDを使用することもできます。

sitemaps.orgのLastmod定義セクション から:

ファイルが最後に変更された日付。この日付は W3C Datetime 形式である必要があります。この形式では、必要に応じて時間部分を省略し、YYYY-MM-DDを使用できます。

その粒度まで下げてタイムゾーンオフセットも提供したい場合は、正解です。UTC+/-です。開始 W3C日時

時間は、時間と分でのタイムゾーンオフセットとともに、現地時間で表されます。 「+ hh:mm」のタイムゾーンオフセットは、日付/時刻がUTCより「hh」時間と「mm」分進んだローカルタイムゾーンを使用することを示します。 「-hh:mm」のタイムゾーンオフセットは、日付/時刻がUTCより「hh」時間と「mm」分遅れたローカルタイムゾーンを使用することを示します。

そして例として、まだW3Cから:

1994-11-05T08:15:30-05:00は、1994年11月5日午前8:15:30、米国東部標準時に対応します。

19
methode

C#でXMLサイトマップの最終変更(lastmod)時間を適切にフォーマットする

var ss = DateTime.Now.ToString("yyyy-mm-ddThh:mm:ss:zzz");
4
Safavi

PHPでは、以下を使用できます。

$lastmod = date("Y-m-d\Th:m:s+00:00");

これは次のように表示されます:

2018-02-14T08:02:28+00:00
1
Fifi

PHPは実際には次のようになります。

date('Y-m-d\TH:i:s+00:00');
1
Mitch

C#のGoogleサイトマップXMLの lastmod フィールドの形式は次のとおりです。

var lastmod = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:sszzz");

W3C Datetime 形式である<lastmod>2018-08-24T09:18:38-04:00</lastmod>などの値を提供します。

1
truemedia

Date.prototype.toISOString()

ToISOString()メソッドは、単純化された拡張ISO形式(ISO 8601)の文字列を返します。これは常に24文字または27文字(YYYY-MM-DDTHH:mm:ss.sssZまたは±YYYYYY-MM-DDTHH:mm:ss)です。 sssZ)。タイムゾーンは、サフィックス「Z」で示されるように、常にゼロUTCオフセットです。

// expected output: 2011-10-05T14:48:00.000Z

0
Ronnie Royston