ドキュメントを読んでいますが、クライアントではなくサーバーから日付を設定する方法が見つかりませんか?
たとえば、このようなもの
moment().set('server time')
その場合、 moment()は、クライアントのコンピューターからの時間ではなく、サーバーの時間に基づいて Date オブジェクトを返します。
この機能は存在しますか?存在しない場合、使用する推奨される方法は何ですか? 現在、サーバーをポーリングしてサーバーの時間を取得していますが、ご想像のとおり、これはあまり効率的ではありません。
コード例と要約で更新
オークションアプリケーションを構築しています。したがって、サーバー時間は重要です。たとえば、ユーザーが時間設定を改ざんしたり、時間を手動で構成したりした場合、実際にはまだ数分残っているのに、クライアントには既に終了したオークションが表示されることがあります。すべての時間チェックは明らかにサーバー上で行われますが、クライアントとサーバーを同期させる必要があるのはそのためです。これで、数秒ごとに最新の時刻を取得するためにサーバーをポーリングしていることがわかります。ただし、サーバーから渡す変数から基本時間を呼び出すように moment() を設定する必要があります。したがって、moment() を呼び出すたびに、new Date() ではなく、最初に渡された時刻に基づいています。
app.getTime = ->
setInterval ->
$.get app.apiUrl + 'public/time', (time) ->
app.now = moment(time).format('YYYY-MM-DDTHH:mm')
, app.fetchTimeInterval
アプリケーションの他の場所で、アプリのサーバー時間を次のように使用します
collection = new Auction.DealershipBasket [], query: "?$orderby=Ends&$filter=Ends lt datetime'#{app.now}'"
代わりに、次を呼び出したいと思います。サーバーからの時間を返します。これは、上記の URL からの get 要求で一度だけ構成する必要があります。
now = moment().format('YYYY-MM-DDTHH:mm')