none
コンテンツ検索Webパーツのフィールドに「Created」を表示させると、日時がずれる RRS feed

  • 質問

  • コンテンツ検索Webパーツにブログサイトの記事を表示させています。
    記事の作成日時を表示させようと、フィールドに「Created」を指定しました。
    午前中に投稿したアイテムは本日の日付になったのですが、
    午後に投稿したアイテムは明日の日付になってしまいました。

    コンテンツ検索Webパーツを置いているサイトと、ブログサイトのタイムゾーンは「大阪、札幌、東京」を指定しています。
    このずれを直す方法はありますでしょうか。
    ご教授いただければ幸いです。

    2016年6月1日 9:11

回答

  • こんにちは。

    こちらの環境(SharePoint Online)でも試してみたところ再現しました。
    どうやら日本のタイムゾーン(+09:00)の時刻をUTCと認識して時刻の計算を二重にやっているような気がします。
    15:00+09:00=24:00なので、午後3時以降の投稿が翌日の日付になってしまうようです。

    いろいろタイムゾーンを変更してみましたが、ブログサイト側のタイムゾーンは関係ないようです。

    例として、
    ブログサイト:「世界協定時」
    コンテンツ検索Webパーツのサイト:「大阪、札幌、東京」
    という組み合わせでも事象が発生しました。

    また、
    ブログサイト:「世界協定時」
    コンテンツ検索Webパーツのサイト:「世界協定時」
    ユーザーのタイムゾーン:「大阪、札幌、東京」
    の組み合わせでも駄目でした。
    • 回答としてマーク NekoMegane 2016年6月10日 6:34
    2016年6月6日 9:11
  • 回答済みになってしまいましたが、もう少し調査をしてみました。

    とりあえず、コンテンツ検索Webパーツのサイトまでは日付は正常に取れているみたいで、そこから書式変換したときにおかしくなっているようです。

    上記のような設定になっていると仮定します。「2行」のテンプレートの場合、表示テンプレートは「/_catalogs/masterpage/Display Templates/Content Web Parts/Item_TwoLines.js」となりますが、ここの50~52行目でline2を出力する部分がおかしいように思います。

    '" id="', line2Id ,'">', line2 ,'</div>'

    の箇所を

    '" id="', line2Id ,'">', line2.value.toLocaleDateString() ,'</div>'

    のように修正すると正しく表示されました。

    • 回答としてマーク NekoMegane 2016年6月24日 0:50
    2016年6月16日 12:28

すべての返信

  • こんにちは。

    こちらの環境(SharePoint Online)でも試してみたところ再現しました。
    どうやら日本のタイムゾーン(+09:00)の時刻をUTCと認識して時刻の計算を二重にやっているような気がします。
    15:00+09:00=24:00なので、午後3時以降の投稿が翌日の日付になってしまうようです。

    いろいろタイムゾーンを変更してみましたが、ブログサイト側のタイムゾーンは関係ないようです。

    例として、
    ブログサイト:「世界協定時」
    コンテンツ検索Webパーツのサイト:「大阪、札幌、東京」
    という組み合わせでも事象が発生しました。

    また、
    ブログサイト:「世界協定時」
    コンテンツ検索Webパーツのサイト:「世界協定時」
    ユーザーのタイムゾーン:「大阪、札幌、東京」
    の組み合わせでも駄目でした。
    • 回答としてマーク NekoMegane 2016年6月10日 6:34
    2016年6月6日 9:11
  • Takashi Shinohara様

    ご返信誠にありがとうございます。
    UTC計算を二重にしてるのですね、
    確かに午後3時付近の時間帯に投稿したものは翌日になっていました。

    ユーザー側から直す方法はなさそうですね・・。

    現在のところ、集計t列を使用して作成日時を一度文字列に直し、
    集計列の日付時刻をWebパーツに表示する方法をとっています。

    調査の程、誠にありがとうございました。

    2016年6月10日 6:34
  • 回答済みになってしまいましたが、もう少し調査をしてみました。

    とりあえず、コンテンツ検索Webパーツのサイトまでは日付は正常に取れているみたいで、そこから書式変換したときにおかしくなっているようです。

    上記のような設定になっていると仮定します。「2行」のテンプレートの場合、表示テンプレートは「/_catalogs/masterpage/Display Templates/Content Web Parts/Item_TwoLines.js」となりますが、ここの50~52行目でline2を出力する部分がおかしいように思います。

    '" id="', line2Id ,'">', line2 ,'</div>'

    の箇所を

    '" id="', line2Id ,'">', line2.value.toLocaleDateString() ,'</div>'

    のように修正すると正しく表示されました。

    • 回答としてマーク NekoMegane 2016年6月24日 0:50
    2016年6月16日 12:28
  • テンプレート作成時の出力修正が必要なんですね。
    サイトテンプレートを作る為に発行機能をOFFにしてたのでhtmlまで頭がいってませんでした・・。

    ご回答の程、誠にありがとうございました。

    2016年6月24日 0:56