質問
チケットの更新でプレースホルダを使って「現在時刻」を参照するにはどうすればよいですか?{{ticket.updated_at}}
を使用しても前のコメントの時刻が表示されます。
回答
update_at プレースホルダはコメント テキストが保存されるものとして処理されるため、前のコメントデータにしかアクセスできません。その結果、最後のコメントの時刻をレンダリングすることが想定されます。
しかし、デフォルトの Liquid Markup 機能を使ってコメントが処理される時点のタイムスタンプをレンダリングできます。詳細は https://shopify.github.io/liquid/filters/date/1 を参照してください。具体的には次のようにします。
現在のタイムスタンプは {{ "now" | date: "%Y-%m-%d %H:%M" }} です。
後者の書式設定は、必要に応じて http://strftime.net/ を使って変更できます。
いいですね!ただ、ユーザーに間違った時間が表示されています。
良いところに気が付きました!タイムスタンプは常に UTC 時間で返されるので、他のタイムゾーンでは適宜調整する必要があります。これを行う一番簡単な方法として、日付を UNIX 時刻 に変換し、適切な時間の差を足したり引いたりしてから必要な書式を設定することができます。たとえば、EST の時刻を 表示したい場合、次を使用できます:
この記事は {{"now" | date: "%s" | minus : 18000 | date: "%Y-%m-%d %H:%M %P EST"}} に更新されました
すると次のように表示されます。
この記事は 2017-11-22 06:42 am EST に更新されました
重要事項:上記の解決策では UTC への絶対参照を使用しています。したがって、夏時間などなさまざまな要因を考慮した場合、時間の経過とともに同期が失われます。夏時間を使用する地域では、UTC との時間差が変化するのに合わせて必ずプレースホルダを編集してください。
0 コメント
サインインしてコメントを残してください。