javascript - 日期-fns "RangeError: Invalid time value"

标签 javascript

我正在尝试使用 date-fns 将 18:00:00.000 转换为 24H (18:00) 和 12H (6PM) 格式。但是,18:00:00.000 的输入值会给出“RangeError:无效时间值”。

我的代码

dateFns.format(new Date(18:00:00.000), 'H:mm')

如果我以 dateTime 格式传递时间,例如 2022-01-04T11:00:00.000Z,我没有问题,但我只需要时间(小时和分钟)。

最佳答案

您的代码失败是因为 new Date() 需要有效的日期时间字符串来创建新的日期对象。要解决此问题,只需制定一个当前日期字符串并附上您需要的时间戳并将其传递给 new Date() 方法。然后您可以将日期对象传递给格式方法以获得所需的输出。

引用this根据您的要求设置日期格式的图表。

const now = dateFns.format(new Date(), 'YYYY-MM-DD');
const custTime = '18:00:00.000';
const custDt = new Date(`${now} ${custTime}`);
console.log(dateFns.format(custDt, 'h:mm A'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/date-fns/2.0.0-alpha0/date_fns.min.js" integrity="sha512-0kon+2zxkK5yhflwFqaTaIhLVDKGVH0YH/jm8P8Bab/4EOgC/n7gWyy7WE4EXrfPOVDeNdaebiAng0nsfeFd9A==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

关于javascript - 日期-fns "RangeError: Invalid time value",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70727103/

相关文章:

javascript - 防止提交后重新加载页面

javascript - 在 JavaScript 中调用一个带有变量的函数

javascript - 检测我正在使用哪种类型的 d3 秤

javascript - 完成函数 kriskowal 的 q 的含义

javascript - 如何使用C#控制台同时进行输入和日志记录

javascript - Firebase 功能测试初始化​​失败

javascript - Firefox 中的 OnClick 函数问题

javascript - 如何阻止 Overlay mousedown 事件进入 map ?

javascript - 如何解析通过 ajax 请求发送的多部分/表单数据。?

javascript - 如何重定向未使用 DevLess JS SDK 登录的用户?