Heim > Fragen und Antworten > Hauptteil
let sd = 1498482000000;
let serverDate = () => new Date() > sd ? (
new Date() - (new Date() - sd)
) : (
new Date() + (sd - new Date())
)
console.log(serverDate()) // 1498482000000
巴扎黑2017-06-28 09:29:55
每次 new Date()
会得到不同的值,而且计算会花时间,建议用 now
缓存:const now = new Date()
now - (now - sd)
,展开就是 now - now + sd
,也即 now + (sd - now)
,所以两个分支的表达式是等价的,完全没必要写分支
最终可省略成一句话:new Date(sd)
就是服务器时间,何必这么麻烦