如何将日期分配给defaultDate?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将日期分配给defaultDate?相关的知识,希望对你有一定的参考价值。

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

这是两个全局变量。

var ri_startDate = "";
var ri_endDate = "";

我将存储在DB中的日期值添加到全局变量中。

(从DB检索的日期格式为YYYY-MM-DD。)

$.ajax({
    type: 'POST',
    url: 'getSectionDate.do',
    data: {"ri_idx" : ri_idx},
    dataType: 'JSON',
    success: function(resultData){
        $.each(resultData, function(key, value){
            ri_startDate = value.ri_startDate;
            ri_endDate = value.ri_endDate;

            $('#ri_startDate').val(ri_startDate);
            $('#ri_endDate').val(ri_endDate);
        });
        if(ri_startDate != null || ri_startDate != "" || ri_endDate != null || ri_endDate != "") {
            $('#calendarContainer').show(700,rerenderingFullCalendar);
            $('.doctorname2').hide(700);
        }
    },
    error: function(resultData) {
        console.log("resultData Error >> " + resultData);   
    }
});

现在一切都已完成,我将把它插入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)                 
    }); 
});

我做错了什么?

我找不到原因。我已经在Google Developer Tools中对其进行了测试,但它运行正常。 (当您在全局而不是在函数内部创建它时)

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

如果您在Google Developer Tools上运行此功能,则可行。

但是,当我编写此代码并运行它时,我收到以下错误。

未捕获的TypeError:无法在MonthViewDateProfileGenerator上的MonthViewDateProfileGenerator.DateProfileGenerator.buildRenderRange(fullcalendar.js:12144)处的MonthViewDateProfileGenerator.DateProfileGenerator.buildRenderRange(fullcalendar.js:12144)处的MonthViewDateProfileGenerator.DateProfileGenerator.buildRenderRange(fullcalendar.js:12144)处读取null的属性'clone' .DateProfileGenerator.build(fullcalendar.js:10265)在Calendar.renderView(fullcalendar.js:3624)处于Calendar.renderView(fullcalendar.js:9607),位于Calendar.render的Calendar.initialRender(fullcalendar.js:9534) (fullcalendar.js:9470)htmlDivElement。 (fullcalendar.js:12414)在Function.each(jquery-3.2.1.min.js:2)

我如何解决它?因此,不能取得进展。

请帮我。

答案

根据我们的讨论,你发送January 2018作为日期,并将其分配给defaultDateJanuary 2018不是公认的RFC2822ISO格式。时刻构建回落到js Date(),这在所有浏览器和版本中都不可靠。不鼓励使用非RFC2822/ISO日期格式,并将在即将发布的主要版本中删除。

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

$('#calendar').fullCalendar({
  defaultDate: $.fullCalendar.moment('2005-10-01')
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.8.0/fullcalendar.print.min.css" rel="stylesheet" />
<link href="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.8.0/fullcalendar.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.20.1/moment.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.8.0/fullcalendar.js"></script>


<div id="calendar">
</div>
另一答案

我在@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);   
         }
     });

loadCalendar函数部分:

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);
};

这一切都运作良好。

另一答案

试过这样的事情......我之前在我的代码上使用过它。

$( "#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');

以上是关于如何将日期分配给defaultDate?的主要内容,如果未能解决你的问题,请参考以下文章

仅从日期时间字段(mysql)中提取日期并将其分配给 php 变量

js 判断日期 大小

从字符串/django 对象获取 datepicker defaultdate

jquery ui datepicker怎么设置默认日期

如何设置jquery datepicker默认显示当天日期

将日期分配给日期时间 [关闭]