使用数据库中的数据和生成的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,

我需要使用fullcalendar.io创建日历视图。对于某些日期,我在数据库中有一个特定的价格,我会检索它,但是对于某些日期(没有特定的价格),我需要在我需要用JavaScript创建的对象中输入通常的价格。现在的问题是,我不知道如何为此制作JSON

简言之:我需要为每个日期定价,但对于某些日期,我从数据库中获取数据。如何在JavaScript中创建这样的JSON对象

我有以下代码:

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,工作正常。。。还有其他更好的解决方案吗?你能给我什么建议?好吧,看来你的代码(第二次比较)正在做你想做的事情。