Javascript 如何将HTTP日期转换为以毫秒为单位的延迟
我正在创建一个Node.js服务,它需要发出HTTP GET请求,并在遇到503响应时重试 从W3.org的: 响应后重试标头字段可用于503(服务) 不可用)响应,指示服务的预期使用时间 对请求的客户端不可用。[…]此字段的值 可以是HTTP日期或整数秒数(以秒为单位) (十进制)在响应时间之后。[……]其使用的两个例子 是 我想使用此信息在适当的时间触发重试。这对于秒来说很容易,因为我可以轻松地将它们转换为毫秒和设置超时(fn,ms)。HTTP日期版本要难得多。我需要找到服务器的时区,将提供的日期转换为该时区,从提供的时间中减去当前时间,将结果转换为毫秒,然后Javascript 如何将HTTP日期转换为以毫秒为单位的延迟,javascript,date,datetime,timezone,Javascript,Date,Datetime,Timezone,我正在创建一个Node.js服务,它需要发出HTTP GET请求,并在遇到503响应时重试 从W3.org的: 响应后重试标头字段可用于503(服务) 不可用)响应,指示服务的预期使用时间 对请求的客户端不可用。[…]此字段的值 可以是HTTP日期或整数秒数(以秒为单位) (十进制)在响应时间之后。[……]其使用的两个例子 是 我想使用此信息在适当的时间触发重试。这对于秒来说很容易,因为我可以轻松地将它们转换为毫秒和设置超时(fn,ms)。HTTP日期版本要难得多。我需要找到服务器的时区,将提供
setTimeout(fn,ms)
如果ms
为正值
当然,我可以做到这一切,但我希望已经有一个图书馆可以做到这一点,因为这似乎是一件相当常见的事情。然而,我似乎找不到。有线索吗?怎么样
var d = new Date("Tue, 19 Aug 2014 13:50:59 GMT"); // d is in your timezone now
d.setSeconds(d.getSeconds()+120);
var diff = d.getTime()-Date.now();
if (diff>0) var tId=setTimeout(something,diff);
很简单。我不知道日期会自动转换成本地时区。
var d = new Date("Tue, 19 Aug 2014 13:50:59 GMT"); // d is in your timezone now
d.setSeconds(d.getSeconds()+120);
var diff = d.getTime()-Date.now();
if (diff>0) var tId=setTimeout(something,diff);