我一直在阅读文档,但似乎找不到从服务器而不是客户端设置日期的方法?
例如像这样
moment().set('server time')
然后moment()将根据服务器的时间而不是客户端计算机的时间返回日期对象。
此功能是否存在,如果不存在,您会使用哪些推荐方法?现在我正在轮询服务器以获取服务器的时间,但是您可以想象这不是很有效。
更新了代码示例和摘要
我正在构建一个拍卖应用程序。所以服务器时间很关键。例如,如果用户篡改了他们的时间设置或者他们的时间已经被手动配置,客户可能会看到一个已经结束的拍卖,而实际上它还剩下几分钟。所有时间检查显然都是在服务器上完成的,但这就是我需要客户端和服务器同步的原因。现在您可以看到我每隔几秒就轮询服务器以获取最新时间。但是,我需要设置 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')