我在 CF 中遇到了一个需要解决的难题。
您有一个时间戳作为参数传递给服务器。例如2012-5-10 14:55
。
您如何查看从给定时间起是否已过去 30 秒并返回 true
或 false
?
规则:
您无法使用当前服务器时间来检查是否已经过去了 30 秒,因为时间戳来自世界任何地方并且总是错误的。
在这种情况下,您始终可以信任传递给服务器的参数时间戳。
这在 ColdFusion 9 中如何可能(如果有的话)?
最佳答案
嗯......你的问题是你不知道延迟。您可以从收到时间戳开始计算 30 秒 - 但这可能是创建时间戳后的几秒。
您可以轻松地数 30 秒...
sleep(30000); //1000 miliseconds = 1 second. 30k = 30 seconds
因此,一旦您获得 var,您就可以“等待”三十秒,然后执行某些操作。但从您的问题来看,您似乎需要从创建时间戳(在客户端上创建)的时间起精确 30 秒。您可能不能那么准确,因为:
- 两个时钟不同步
- 您无法计算出请求的延迟时间。
- 即使可以,由于您无法控制客户端,因此您将难以保证结果,因为 HTTP 是无状态的且不是实时的。
如果你可以指定一个 HTML5 浏览器,你可以使用 websockets - 这实际上是乞求它:) 但这是我能想到的唯一真正的解决方案。
关于coldfusion - 在不知道服务器时间的情况下如何使用 DateDiff?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10537503/