【问题标题】:Convert date with forward slashes and partial time to Javascript date time将带有正斜杠和部分时间的日期转换为 Javascript 日期时间
【发布时间】:2022-07-31 18:17:26
【问题描述】:

我有一个字符串格式的日期,如下所示:

"31/07/2022 16:00"

...我想将其更改为有效的 Javascript 日期和时间。

我尝试使用以下代码将正斜杠更改为 '-'

let lala
let lalawood = '31/07/2022 16:00'
lala = lalawood.replace(/\//g, '-');
console.log(lala);  // outputs 31-07-2022 16:00

但它返回的'31-07-2022 16:00' 仍然是无效的日期时间。 如何将其转换为有效的日期和时间,以便我可以使用它以编程方式比较两个日期?

【问题讨论】:

  • 如果您的日期时间始终采用相同的格式,则可能值得拥有一个将字符串拆分为各个部分并使用日期构造函数的函数。您可以在空格上拆分字符串(日期和时间),然后在/ 上拆分日期部分,在: 上拆分时间部分。然后可以将其传递给 Date 构造函数const date = new Date(year, monthIndex, day, hours, minutes)。这里的月份要小心,因为它是 0 索引

标签: javascript datetime format


【解决方案1】:

这里的问题是您使用欧洲格式 (DD/MM/YYYY) 的时间,而 JavaScript 将其编译为美国时间格式 (MM/DD/YYYY), 这是一个可以切换日期和月份以创建有效日期的 sn-p

let s = '31/07/2022 17:30';
s = s.replace(/[^0-9 ]/g, " ").split(' ');
let d = new Date(s[2], s[1]-1, s[0], s[3], s[4]);
console.log(d);

【讨论】:

  • 感谢您指出正确的方向。我尝试修改您的代码以包含小时:分钟:秒,但我得到了null。在这里查看我的代码:codepen.io/apitlekays/pen/ExEomxo
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-17
  • 2023-03-26
  • 2012-05-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多