gpt4 book ai didi

javascript - 从日期时间字符串中提取小时

转载 作者:行者123 更新时间:2023-11-28 17:00:41 24 4
gpt4 key购买 nike

我有一个日期时间字符串,如下所示:

Thu Aug 15 2019 07:15:03 GMT+0100 (British Summer Time)

我需要从字符串中获取小时,以便可以在变量中使用它。

例如,我在上述字符串上查找的结果将是:07

我该怎么做?

最佳答案

正如上面的答案所述,类似于:

new Date("Thu Aug 15 2019 07:15:03 GMT+0100 (British Summer Time)").getHours()

...将返回日期的小时部分,但需要注意三件重要的事情:

  1. 这将是系统当前时区的小时数,不一定是给出日期的时区。(还有一种替代方法 getUTCHours() ,它始终返回 UTC 小时数.)
  2. 它是一个数字,而不是小于 10 时以 0 开头的字符串。
  3. 这将是 24 小时制时间,其值介于 0 到 23 之间,而不是 AM/PM(如果您需要的话)。

如果您总是想获取原始日期中提供的小时,那么使用正则表达式解析日期中的小时将是一个更好的主意。然而,该正则表达式的外观取决于您需要对各种原始日期/时间格式的灵 active 。

为了获得更大的灵 active ,您可以像这样解析日期/时间:

const dateStr = 'Thu Aug 15 2019 07:15:03 GMT+0100 (British Summer Time)';
const date = new Date(dateStr);`

...然后还解析出给定的原始小时偏移量:

const parts = /(?:GMT|UTC)([-+])(\d\d)(\d\d)/.exec(dateStr);
const offsetMinutes = parts ? (parseInt(parts[2]) * 60 + parseInt(parts[3])) * (parts[1] === '-' ? -1 : 1) : 0;

然后,再做一些工作,转换为您喜欢的任何时区偏移量。

请注意,时区偏移并不总是以整小时为单位,因此一个时区中可能有两个不同的小时与另一个时区中的一个小时相匹配,具体取决于与小时相关的分钟。

哦,还有一件事......

使用这个正则表达式:

/[T ](\d{1,2}):/.exec(dateStr)[1] (T 后面有一个空格)

...将非常可靠地从各种日期/时间字符串中提取最初给出的小时。上面的代码编写得就像正则表达式不会失败一样。将其分解为测试 /[T ](\d{1,2}):/.exec(dateStr)不是null在使用 [1] 提取小时之前以获得更可靠的代码。

关于javascript - 从日期时间字符串中提取小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57607535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com