javascript - 如何从 ISO 字符串 javascript 中获取日期
问题描述
我有一个从服务器返回的 ISO 日期,在将其发送到前端之前,我想将 ISO 日期转换为类似这样的日期
2011-10-05T14:48:00.000Z
time: {
day: 'Tue',
hour: '11:54 AM',
date: 'May 5, 2019'
}
我不想使用一堆正则表达式,除非我必须这样做,我希望我可以用 .toDateString() 等函数来实现这一点......是否有 toDateDayString 或类似的东西?
这是将信息发送回我的前端的实际功能的片段。
我希望能够从 .then() 中的承诺中实现这一内联
allMessages = []
await subClient.conversations.services(convoServiceSid)
.conversations(convo)
.messages
.list({limit: 20})
.then(messages => messages.forEach(m =>
allMessages.push({"messagesId": m.conversationSid, "time": m.dateCreated.toDateString() }) ));
//m.dateCreated is always going to be an ISO string, I want to make an object with day, hour, date if possible
res.json(allMessages)
解决方案
您可以使用toLocaleDateString方法
function get_time(iso_date_str) {
const [day, month_date, year, hour] = (
new Date(iso_date_str).toLocaleDateString('en', {
weekday: 'short',
hour: 'numeric',
minute: 'numeric',
month: 'short',
day: 'numeric',
year: 'numeric',
})
.split(/,\s?/)
);
return {
day,
hour,
date: month_date + ', ' + year
};
}
console.log(get_time('2011-10-05T14:48:00.000Z'));
推荐阅读
- excel - 插入操作的 Excel 验证
- common-lisp - 在 clisp 中定义对象
- html - 在 Bootstrap 4 网格列中垂直对齐内容的最佳方法是什么?
- javascript - 使用jquery与html表相同的宽度和高度
- javascript - 为什么我能够使用 this.state 而无需绑定或使用箭头函数 React
- ios - 无法将从 Firebase 检索到的数组项输出到 Swift 中的 UITableView
- python - Pandas 列总和基于行
- android - VMWare Fusion 中的 Intel HAXM 错误 - 无法运行 Android 应用程序
- django - 如何在 Django REST 框架中显示外键数据?
- javascript - 如何在 Vue.js 中使用 async/await?