Javascript 如何将日期指定给defaultDate?

Javascript 如何将日期指定给defaultDate?,javascript,jquery,fullcalendar,Javascript,Jquery,Fullcalendar,我发布了同样的问题,但没有得到答案,所以我再次发布了问题 这里有两个全局变量 var ri_startDate = ""; var ri_endDate = ""; 我将存储在DB中的日期值添加到全局变量中 var ri_startDate = ""; var ri_endDate = ""; (从数据库检索的日期格式为YYY-MM-DD。) 现在一切都完成了,我将把它插入defaultDate 详情如下: $('#calendar').fullCalendar({ defaultD

我发布了同样的问题,但没有得到答案,所以我再次发布了问题

这里有两个全局变量

var ri_startDate = "";
var ri_endDate = "";
我将存储在DB中的日期值添加到全局变量中

var ri_startDate = "";
var ri_endDate = "";
(从数据库检索的日期格式为YYY-MM-DD。)

现在一切都完成了,我将把它插入defaultDate

详情如下:

$('#calendar').fullCalendar({
    defaultDate: moment(ri_startDate)                 
}); 
但是,这将导致错误

所以我做了下面的事情

$(function() {
    var moment_startDate = moment(ri_startDate, 'YYYY-MM-DD');
    var result_moment_startDate = moment_startDate.format('YYYY-MM-DD');

    console.log(result_moment_startDate);

    $('#calendar').fullCalendar({
        defaultDate: moment(result_moment_startDate)                 
    }); 
});
我做错了什么

我找不到原因。我已经在谷歌开发者工具中测试过了,但效果很好。(在全局而非函数内部创建时)

我怎么能做我想做的?我只想将DB中的查询值(ri_startDate)添加到defaultDate

如果你在谷歌开发者工具上运行这个,它就可以工作了

然而,当我编写并运行这段代码时,我得到了以下错误

未捕获类型错误:无法读取MonthViewDateProfileGenerator.DateProfileGenerator.buildRenderRange(fullcalendar.js:10447)MonthViewDateProfileGenerator.BasicViewDateProfileGenerator.buildRenderRange(fullcalendar.js:12144)MonthViewDateProfileGenerator.buildRenderRange(fullcalendar.js:14621)的null属性“克隆”在MonthViewDateProfileGenerator.DateProfileGenerator.build(fullcalendar.js:10265)在MonthView.View.setDate(fullcalendar.js:3624)在Calendar.renderView(fullcalendar.js:9607)在Calendar.initialRender(fullcalendar.js:9534)在Calendar.render(fullcalendar.js:9470)在HtmlLevel。(fullcalendar.js:12414)位于Function.each(jquery-3.2.1.min.js:2)

我怎么修理它?因此,无法取得进展


请帮帮我。

试过这样的方法。。。我以前在代码中使用过它

$( "#datepicker-14" ).datetimepicker({
 //format : 'DD-MM-YYYY HH:mm'
    viewMode: 'days',
    format: 'DD/MM/YYYY'
    }, "date");
var dateNow = new Date();
var date= moment(dateNow).format('DD/MM/YYYY');

根据我们的讨论,您将2018年1月作为截止日期发送,并将其分配给2018年1月和2018年1月不是公认的
RFC2822
ISO
格式。瞬间构造回到了
js Date()
,这在所有浏览器和版本中都不可靠。不鼓励使用非
RFC2822/ISO
日期格式,并将在即将发布的主要版本中删除

有关更多信息,请参阅。由于您当前的问题是无法将默认日期设置为所需的日期,如果您提供了如上所述的正确格式的日期,您可以将日历设置为过去或将来的任何日期。请参阅下面的演示,我正在将日历设置为
2015-10-10

$(“#日历”).fullCalendar({
defaultDate:$.fullCalendar.moment('2005-10-01')
});

我在@Muhammad Omer Aslam的帮助下解决了这个问题

ajax部分:

     $.ajax
     ({
        type: 'POST',
        url: 'getSectionDate.do',
        data: {"ri_idx" : ri_idx},
        dataType: 'JSON',
        success: function(resultData)
        {
           console.log("resultData : " + resultData);

           $.each(resultData, function(key, value)
           {
              ri_startDate = value.ri_startDate;
              ri_endDate = value.ri_endDate;

              var a = JSON.stringify(resultData);

              $('#ri_startDate').val(ri_startDate);
              $('#ri_endDate').val(ri_endDate);
           });

           if(ri_startDate != null || ri_startDate != "" || ri_endDate != null || ri_endDate != "")
           {
             loadCalendar(ri_startDate, ri_endDate);
              $('#calendarContainer').show(700,rerenderingFullCalendar);
              $('.doctorname2').hide(700);
           }
        },
         error: function(resultData)
         {
            console.log("resultData Error >> " + resultData);   
         }
     });
加载日历功能部分:

function loadCalendar(ri_startDate,ri_endDate)
{
   var todayMomentDate = $.fullCalendar.moment(ri_startDate);
  var resultTodayMomentDate = todayMomentDate.format('YYYY-MM-DD');       
   console.log("resultTodayMomentDate : " + resultTodayMomentDate);

    // fullCalendar 관련
   $('#calendar').fullCalendar
   ({

   });

   $('#calendar').fullCalendar('gotoDate', resultTodayMomentDate);
};

这一切都很好。

您是否尝试过将其设置为
$.fullCalendar.moment('2014-05-01')第一个。@MuhammadOmerAslam错误不会发生,但不会运行。(ri#u startDate是2018-03-01)在它正确工作之前,不要将其作为答案添加。还有一件事,您在代码中放置了这一行
$(“#calendar”)。fullCalendar({defaultDate:moment(ri#u startDate)})在成功函数中?你的
ri_startDate
来自
ajax
调用,你需要调用success函数中的日历,或者创建一个函数,然后从
success
函数调用它,并将
ri_startDate
作为参数传递给它。当ajax返回时,你将无法访问它在执行rest代码之后,如果在调用
$.fullCalendar.moment()
之前尝试
console.log(ri\u startDate)
,它将不会有任何内容。这导致它不能工作
$(“#datepicker-14”)
datetimepicker
它们的意思是什么?这是html中的id。我从那个html中选择了日期。它的行为是否像
dateDefault
?这个变量dateNow=newdate();默认情况下,选择系统的日期。Date()函数是js默认函数。哦,我刚刚解决了这个问题,但我也会参考你写的。非常感谢:请检查我的答案。还有一个问题。现在已为此设置开始月份,但您需要为结束月份设置。我可以参考此链接吗?使用
visibleRange
选项请参见