javascript - JavaScript Date 构造函数在 CMS(服务器端 JS)中返回无效日期
问题描述
我正在制作一个 React 应用程序,在其中查询 Microsoft Graph API 并获得响应日期2021-11-03T07:45:00.0000000
。
当我尝试将其转换为这样的 JavaScript 时Date
,它给了我“无效日期”let date = new Date(dateString);
let dateString = "2021-11-03T07:45:00.0000000"
let date = new Date(dateString);
let timezoneOffset = date.getTimezoneOffset();
date.setMinutes(date.getMinutes() - timezoneOffset);
let hours = date.getHours();
let minutes = date.getMinutes();
let formattedMinutes = minutes > 9 ? minutes : '0' + minutes;
console.log(hours + ':' + formattedMinutes);
这正常工作,JS
但问题是我使用了不支持的CMSnew Date(dateString)
(服务器端 JS),因此是否可以在8:45
不使用JS中的Date构造函数的情况下将日期值格式化?(库在 CMS 中工作,所以如果您有任何第三方库的解决方案,那很好。)npm
解决方案
在这种情况下,正则表达式可能会有所帮助。这是一个没有时区偏移的简单示例。
str = '2021-11-03T07:45:00.0000000'
const time = str.match(/[0-9]{4}-[0-9]{2}-[0-9]{2}T([0-9:]{5})/)[1]
const timeFormatted = time.split(':').map(num => parseInt(num)).reduce((timeFormatted, num) => {
if (timeFormatted) timeFormatted += ':'
timeFormatted += num
return timeFormatted
})
console.log(timeFormatted)
推荐阅读
- python - 尝试在 ATOM 1.30 中运行 Python 3.7 但收到 EOFError
- css - 通过 CSS 对 Bootstrap 活动导航栏项目的闪亮效果
- javascript - 将块动画滑动到另一个块,最后有弹跳
- ruby-on-rails - Facebook::Messenger::Subscriptions::Error(必须使用活动访问令牌来查询有关当前用户的信息。)
- java - 使用 fetch 时 CriteriaBuilder 查询中断,但没有
- database - OrientDB 图形数据库 - 基于连接边设置字段内容
- swift - 实例成员不能用于可编码 JSON 类型
- javascript - 如何在 angular6 中创建非 SPA 页面?
- c# - 为什么在 C# 中使用 AutoResetEvent 和 ManualResetEvent 时我的代码输出不同
- java - 如何在功能/单元测试中传递查询/路径参数?