gpt4 book ai didi

javascript - 从 JSON 中的现有数据创建日期显示

转载 作者:行者123 更新时间:2023-11-27 23:03:35 26 4
gpt4 key购买 nike

我创建了一个 Controller ,可以提前几天创建

$http.get('js/data.json')
.success(function(data) {
$scope.events = data.events;
$scope.nextDates = [];
for (i = 0; i <= 2; i++) {
// Locked the start date for this example
var d = new Date('2016.04.24 23:14:13');
$scope.nextDates.push(d.setDate(d.getDate() + i));
}
});

然后我有一个包含一些计划事件的 JSON 文件

{
"events": [
{ "name": "Monday Bloody Monday",
"dates": ["Mon Apr 25 2016 00:00:00 GMT+0200 (CEST)"]
},
{ "name": "Hard Work",
"dates": ["Mon Apr 25 2016 00:00:00 GMT+0200 (CEST)",
"Tue Apr 26 2016 00:00:00 GMT+0200 (CEST)",
"Wed Apr 27 2016 00:00:00 GMT+0200 (CEST)",
"Thu Apr 28 2016 00:00:00 GMT+0200 (CEST)",
"Fri Apr 29 2016 00:00:00 GMT+0200 (CEST)"
]
}
]
}

(不确定字符串是否是存储日期的最佳方式。认为也许 unix epo 编号会更好)

我尝试了以下方法,但没有成功

<div ng-repeat="day in nextdates">
<h2>{{day | amDateFormat:'dddd, Do MMMM YYYY'}}</h2>

<div ng-repeat="event in events">
<div ng-repeat="date in event.dates"
ng-show="{ day.diff(Date(date)) < 0 }">
<p>{{event.name}}</p>
</div>
</div>
</div>

顺便说一句:我注入(inject)了 Angular 矩(amDateFormat)来帮助人们读取输出

如何比较日期以查看是否是同一天,然后显示出来?

<小时/>

输出应该是这样的

2016 年 4 月 25 日星期一

星期一血腥星期一

努力工作

2016 年 4 月 26 日星期二

努力工作

2016 年 4 月 27 日星期三

努力工作

2016 年 4 月 28 日星期四

努力工作

2016 年 4 月 29 日星期五

努力工作

也许我应该将逻辑保留在 Controller 中......

最佳答案

希望您使用Underscore.js我们在做js开发的时候,很自然的选择api。希望对你有帮助。

JS

$scope.filteredEvents=[];

_.each(nextdates, function (d) {
_.each(events, function (e) {
_.each(e.dates, function (dt) {
var difference = moment(d) - moment(dt);
if (difference == 0) {
$scope.filteredEvents.push(e);
}
});
});
});

Html

<div ng-repeat="day in nextdates">
<h2>{{day | amDateFormat:'dddd, Do MMMM YYYY'}}</h2>

<div ng-repeat="event in filteredEvents">
<p>{{event.name}}</p>
</div>
</div>

关于javascript - 从 JSON 中的现有数据创建日期显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36825423/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com