javascript - 如何将 rrule 日期值从数组转换为自定义字符串
问题描述
我有一个这样的数组:
[{
evening_feeding: false
evening_feeding_time: "19:00"
feeding_frequency_rule: **"FREQ=DAILY;INTERVAL=2"**
id: 890
morning_feeding: true
morning_feeding_time: "04:00"
noon_feeding: false
noon_feeding_time: "12:00"
pen_id: 299
start_feeding_date: "2020-07-07"
}]
我只想在我的 html 视图中显示这个 feed_frequency_rule: "FREQ=DAILY;INTERVAL=2"作为例如Every day 之类的任何字符串。对此有何建议?
解决方案
您可以创建一个函数来格式化规则,这将首先解析规则,然后为给定规则返回一个人类可读的字符串。
如果找不到匹配项,我们将只返回原始 FREQ 值。
我创建了几行示例数据,然后显示在 Bootstrap 4 表中。
let feedData = [
{
evening_feeding: false, evening_feeding_time: "19:00",
feeding_frequency_rule: "FREQ=DAILY;INTERVAL=2",
id: 890, morning_feeding: true, morning_feeding_time: "04:00",
noon_feeding: false, noon_feeding_time: "12:00",
pen_id: 299, start_feeding_date: "2020-07-07"
},
{
evening_feeding: false, evening_feeding_time: "19:00",
feeding_frequency_rule: "FREQ=WEEKLY;INTERVAL=2",
id: 891, morning_feeding: true, morning_feeding_time: "04:00",
noon_feeding: false, noon_feeding_time: "12:00",
pen_id: 300, start_feeding_date: "2020-07-07"
}
]
function formatFeedingFrequencyRule(rule) {
let freq = rule.split(";")[0].split("=")[1].trim();
switch (freq) {
case "DAILY":
return "Every day";
case "WEEKLY":
return "Every week";
default:
return freq;
}
}
feedData.forEach(obj => {
document.getElementById("tbody_1").innerHTML += formatRow(obj);
});
function formatRow(obj) {
return `<tr><td>${obj.id}</td><td>${formatFeedingFrequencyRule(obj.feeding_frequency_rule)}</td>`
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
<div class="container">
<h5>Feeding Rules</h5>
<table class="table">
<thead>
<tr>
<th>ID</th>
<th>Feeding Frequency</th>
</tr>
</thead>
<tbody id="tbody_1">
</tbody>
</table>
</div>
</body>
推荐阅读
- r - Plotly 图在 Rstudio Graph 窗口和破折号应用程序(Choroplethmapbox)中的显示不一样
- c# - 跨站点脚本:验证不佳 - 强化问题(c#)
- angular - 可重复使用的 MAT-TABLE 下拉过滤器不起作用
- java - 在 QuarkusTest 中使用 LambdaClient.invoke 如何提供自定义标头?
- php - 不推荐使用 __call() 时如何覆盖我的 SOAP 请求?
- c# - 在 C# windows 窗体中出现打印问题
- linux - 在 windows 和 linux 上运行的程序
- python - 为每个 x 值找到 y 的最大值,并用一条线连接这些点
- laravel - Laravel Eloquent 中的急切加载
- node.js - TypeScript 和 Mongoose:调用“save()”时出现类型错误