ライブフィードを表示し、ライフサイクル+瞬間を使用してStackoverflowのメッセージと同様のフォーマットで時刻を更新する小さなアプリケーションに行ってきました。カスタムフォーマットは適用されません
ここでは、24時間以上経過したものを別の形式で表示するために少し変更したいと思います。
I found this thread which was exactly what I was looking for
不幸、それは私の場合では動作せず、私の要素の例は次の通りである:もちろん
<div id="container">
<div something else>
</div>
<div id="feed">
<div class="timestamp" title="Less than 1 minute ago">7 minutes ago</div>
</div>
</div>
上記私のフィードであるのでlivestampは、それを修正した後でありますjquery/ajaxで動的に追加されました。
だから私は次のようにそのコードを変更する上で考慮:(私は信じている)
$('.timestamp').on('change.livestamp', function(event, from, to)
{
event.preventDefault(); // Stop the text from changing automatically
// Get the original timestamp out of the event
var originalTS = event.timeStamp;
// Make a new moment object to compare the timestamp to
var newDate = moment();
// Use moment's .diff method to get the ms difference between timestamps
var delta = newDate.diff(originalTS);
// If the difference is less than a day's worth of ms
if (delta < 86400000){
// Use formatted text provided by the change event
console.log("if: " + newDate.format("dddd M/D/YYYY"));
$(this).html(to);
}
else {
// Format the moment object with whatever moment format you want
console.log("Else: " + newDate.format("dddd M/D/YYYY"));
$(this).html(newDate.format("dddd M/D/YYYY"));
}
}).livestamp();
をそして、私の$(document).ready(function()
の内側にこれを追加しました、しかし、原因私.timestampに動的に追加されている、のonchangeをトリガーすることはありません。
#container
を代わりに使用すると、トリガーが発生し、手動で更新するためにすべてのアイテムを繰り返し処理しなければならないと仮定します。タイムスタンプは1つのアイテムのみに存在するため問題はありません(項目ごとではありません)、このため、最初の繰り返しの後にlivestampがそれを削除するため、残りの部分を更新するタイムスタンプを知ることができません。
このシナリオで提案されているコードのように、動的要素を正しく認識させ、要素ごとにonchangeを実行する方法はありますか?または私は何かを見落としていますか?
また、livestamp.jsでカスタム書式を直接設定することは可能でしょうか?
ような何か:
var newDate = moment();
var delta = newDate.diff(to);
if (delta >= 86400000)
{
to = to.format("dddd M/D/YYYY");
}
これは面白いですが、過去のddddを除いて、私も昨日のHH:mmを持っています。そこにも可能ですか?そして、私がやらなければならなかったよりはるかに簡単な返答に感謝します。 – Prix
'' relativeTime'の 'd'キーを使って' 'Yesterday ''をカスタマイズすることはできますが、' 'HH:mm' 'の部分を含めた出力を得るのは難しいでしょう。とにかく多分これら[1](http://stackoverflow.com/q/42216583/)、[2](http://stackoverflow.com/q/41508796/)、[3](http://stackoverflow.com/q/38367038 /)カスタマイズの相対的な時間の例を提供しています。 – VincenzoC
VincenzoC上記のコードを書いて、それを私に説明し、余分な情報を追加してくれてありがとう、本当にありがとう、私が欲しいものを考え出すことができた。コアファイルを作成してそれ以上のカスタマイズを失う;)ここで私がhttps://jsfiddle.net/7d6bfLwg/1/に行ったのは、 – Prix