使用JavaScript获取当前日期并转换为HTTP日期格式

9

我正在寻找一种方法来获取当前日期和时间以HTTP日期格式(例如 "Tue, 15 Nov 1994 08:12:31 GMT")的形式,我希望使用JavaScript实现。我已经尝试过以下代码:

new Date().toString()

但是这给我一个不同的格式,如:"Tue Aug 20 2013 00:19:28 GMT+0200"。我需要倒转月份和日期,并在星期几和月份之间加上逗号。我该如何得到这种格式?

请参考此答案:https://dev59.com/z3NA5IYBdhLWcg3wL6yx#1056730 - David Starkey
2个回答

21

1
根据RFC 7231 HTTP/1.1 §7.1.1,“首选格式是互联网消息格式[RFC5322]使用的日期和时间规范的固定长度和单一区域子集。”这可能仍然兼容,但需要进行更多的研究。 - Henry Story

0
您可以使用toLocaleString方法配合特定参数和一些调整。 toLocaleString单独使用可以返回类似的字符串,但带有两个逗号而没有GMT,例如Sun, 20 Nov 2022, 12:37:06。因此,我们使用replace删除第二个逗号并添加缺失的时区。

const dateHeader = new Date().toLocaleString('en-GB', {
  timeZone: 'UTC',
  hour12: false,
  weekday: 'short',
  year: 'numeric',
  month: 'short',
  day: '2-digit',
  hour: '2-digit',
  minute: '2-digit',
  second: '2-digit',
}).replace(/(?:(\d),)/, '$1') + ' GMT';

console.log(dateHeader);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接