使用数据库中的数据和生成的JavaScript创建JSON
我需要使用fullcalendar.io创建日历视图。对于某些日期,我在数据库中有一个特定的价格,我会检索它,但是对于某些日期(没有特定的价格),我需要在我需要用JavaScript创建的对象中输入通常的价格。现在的问题是,我不知道如何为此制作JSON 简言之:我需要为每个日期定价,但对于某些日期,我从数据库中获取数据。如何在JavaScript中创建这样的JSON对象 我有以下代码:使用数据库中的数据和生成的JavaScript创建JSON,javascript,jquery,arrays,json,Javascript,Jquery,Arrays,Json,我需要使用fullcalendar.io创建日历视图。对于某些日期,我在数据库中有一个特定的价格,我会检索它,但是对于某些日期(没有特定的价格),我需要在我需要用JavaScript创建的对象中输入通常的价格。现在的问题是,我不知道如何为此制作JSON 简言之:我需要为每个日期定价,但对于某些日期,我从数据库中获取数据。如何在JavaScript中创建这样的JSON对象 我有以下代码: var db_data = [ { "id": 5, "user_id": 1,
var db_data = [
{
"id": 5,
"user_id": 1,
"article_id": 5,
"title": "",
"start": "2016-03-25 15:18:46"
},
{
"id": 4,
"user_id": 1,
"article_id": 5,
"price": 55,
"title": "",
"start": "2016-03-15 15:18:46"
},
{
"id": 3,
"user_id": 1,
"article_id": 5,
"price": 35,
"title": "",
"start": "2016-03-07 15:18:46"
},
{
"id": 2,
"user_id": 1,
"article_id": 5,
"price": 22,
"title": "drugi",
"start": "2016-03-05 15:18:46"
},
{
"id": 1,
"user_id": 1,
"article_id": 5,
"price": 44,
"title": "prvi",
"start": "2016-02-04 15:18:46"
}
];
// declare variables
var period_start = new Date('2016-02-02'),
period_end = new Date('2016-03-03'),
current_date = period_start,
array_of_all_dates = [];
// Create a populated array of dates
// Create a populated array of dates
while (current_date.getTime() <= period_end.getTime()) {
array_of_all_dates.push(current_date);
current_date = new Date(+current_date);
current_date.setDate(current_date.getDate() + 1);
}
// Now loop over the array of populated dates and mutate, so something like
array_of_all_dates = array_of_all_dates.map(function (date) {
var found_in_db = db_data.filter(function (db_data) {
return new Date(db_data.start.replace(" ", "T")).getTime() === date.getTime(); // You need to do this comparison better!
});
if (found_in_db.length > 0) {
return found_in_db[0];
}
var new_object = {
title: '',
start: date,
price: '{{$article->price}}'
};
console.log(new_object);
return new_object;
});
console.log('result'+array_of_all_dates);
drawCalendar(array_of_all_dates);
但现在我得到了:
我不明白这是怎么回事:
new Date(db_data.start.replace(" ", "T")).getTime() === date.getTime()
可以是真的
。db_数据中的日期设置了时间“2016-03-15 15:18:46”
,但您在所有日期的数组中创建的日期不日期('2016-02-02')
您的第二次约会比较似乎有效,但我不清楚您希望的结果是什么:
array_of_all_dates.map( ... );
在某些情况下,从db_数据返回一个元素,如下所示:
{ "id": 5", "user_id": 1, "article_id": 5, "title": "", "start": "2016-03-25 15:18:46" }
{ a_property: 'some_default_value', start: date }
如果没有“匹配”,则返回如下所示的对象:
{ "id": 5", "user_id": 1, "article_id": 5, "title": "", "start": "2016-03-25 15:18:46" }
{ a_property: 'some_default_value', start: date }
请注意,此操作将替换所有日期的数组的所有原始元素
您希望在所有日期的数组中结束什么,以便将其传递给drawCalendar
?我不知道这是如何实现的:
new Date(db_data.start.replace(" ", "T")).getTime() === date.getTime()
可以是真的
。db_数据中的日期设置了时间“2016-03-15 15:18:46”
,但您在所有日期的数组中创建的日期不日期('2016-02-02')
您的第二次约会比较似乎有效,但我不清楚您希望的结果是什么:
array_of_all_dates.map( ... );
在某些情况下,从db_数据返回一个元素,如下所示:
{ "id": 5", "user_id": 1, "article_id": 5, "title": "", "start": "2016-03-25 15:18:46" }
{ a_property: 'some_default_value', start: date }
如果没有“匹配”,则返回如下所示的对象:
{ "id": 5", "user_id": 1, "article_id": 5, "title": "", "start": "2016-03-25 15:18:46" }
{ a_property: 'some_default_value', start: date }
请注意,此操作将替换所有日期的数组的所有原始元素
您希望在所有日期的数组中结束什么,以便将其传递给drawCalendar
?您能更好地解释您需要什么吗?我需要使用fullcalendar.io创建日历视图。对于某些日期,我在数据库中有price,我得到了它,但对于某些日期,我需要输入所有速率,以便使用javascript创建对象。现在的问题是因为我不知道如何制作json。所以,对于每个日期,我都需要有一个价格,但对于一些日期,我从数据库中获取数据……您能更好地解释您需要什么吗?我需要使用fullcalendar.io创建日历视图。对于某些日期,我在数据库中有price,我得到了它,但对于某些日期,我需要输入所有速率,以便使用javascript创建对象。现在的问题是因为我不知道如何制作json。所以,对于每个日期,我都需要有一个价格,但对于一些日期,我从数据库中获取数据…是的,这是一个严重的问题,因为现在我在数据库中发布:2016-03-15 00:00:00,工作正常。。。还有其他更好的解决方案吗?你能给我什么建议?好吧,看来你的代码(第二次比较)正在做你想做的。是的,这是一个严重的问题,因为我现在在数据库中发布:2016-03-15 00:00:00,工作正常。。。还有其他更好的解决方案吗?你能给我什么建议?好吧,看来你的代码(第二次比较)正在做你想做的事情。