angular - 无法在 Angular 中重新格式化日期变量
问题描述
我有一个项目需要在这里获取 API 提要http://am-twitter-scrape.herokuapp.com/users/Twitter?pages_limit=3&wait=0
示例日期字符串:2:21 PM - 19 Jul 2019
我需要切断时间并重新格式化日期,如“月日,年”(例如 2019 年 1 月 5 日)。
我试图在字符串变量上运行 datePipe,如下所示:
<ng-container matColumnDef="date">
<th mat-header-cell *matHeaderCellDef> Date </th>
<!--<td mat-cell *matCellDef="let hashtags"> {{hashtags.date | date: 'longDate'}} </td>-->
<td mat-cell *matCellDef="let hashtags"> {{hashtags.date}} </td>
</ng-container>
但它只是出现了一个错误说
InvalidPipeArgument:“无法将管道“DatePipe”的“2:21 PM - 2019 年 7 月 19 日”转换为日期
似乎日期的格式与包含的用于更改格式的 Angular 工具包不兼容。
我可能的选择是什么?我可以在 Angular 中使用正则表达式吗?
解决方案
是的,您可以在 Angular 中使用正则表达式。但是,更简单的解决方案可能是使用字符串操作。
在您的模板中,您可以使用:
<td mat-cell *matCellDef="let hashtags"> {{convertDate(hashtags.date)}} </td>
</ng-container>
然后convertDate
在您的组件中创建函数:
convertDate(rawDate: string): string {
const dateOnly = rawDate.split('-')[1].trim();
const [day, month, year] = dateOnly.split(' ');
return `${month} ${day}, ${year}`;
}
推荐阅读
- python - 组织 Python 类的最佳方式是什么?
- c# - 如何在 Postgres 表中正确存储 C# 的 Bitarray
- python - 使用卡方找到拟合优度
- reactjs - 返回 Promise 而不是数据
- gitlab - Gitlab通过curl调用REST API不起作用
- android - 无法检测到后台服务
- sass - 将所有 Clarity 样式规则添加到已建立项目中的最佳方法是什么?
- bash - 如何在bash中自动将两个文件重命名为不同的名称
- javascript - 我无法在 JavaScript 中获取帖子
- python - 使用while循环在python中复制数据行