2017-12-22 18 views
1

같은 질문을 올렸지 만 답변을 얻지 못했기 때문에 다시 질문을 게시합니다.date를 defaultDate에 할당하는 방법은 무엇입니까?

여기에는 두 개의 전역 변수가 있습니다.

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

DB에 저장된 날짜 값을 전역 변수에 추가했습니다.

합니다 (DB에서 검색 한 날짜의 형식은 YYY-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 개발자 도구에서 테스트했지만 정상적으로 작동합니다. (함수 대신 전역으로 만들 때)

내가 원하는 것을 어떻게 할 수 있습니까? 난 그냥 쿼리 값 (ri_startDate)를 데이터베이스에서 defaultDate에 추가하고 싶다.

Google 개발자 도구에서 실행하면 작동합니다.

그러나이 코드를 작성하여 실행하면 다음 오류가 발생합니다.

Uncaught TypeError: Cannot read property 'clone' of null at MonthViewDateProfileGenerator.DateProfileGenerator.buildRenderRange (fullcalendar.js:10447) at MonthViewDateProfileGenerator.BasicViewDateProfileGenerator.buildRenderRange (fullcalendar.js:12144) at MonthViewDateProfileGenerator.buildRenderRange (fullcalendar.js:14621) at MonthViewDateProfileGenerator.DateProfileGenerator.build (fullcalendar.js:10265) at MonthView.View.setDate (fullcalendar.js:3624) at Calendar.renderView (fullcalendar.js:9607) at Calendar.initialRender (fullcalendar.js:9534) at Calendar.render (fullcalendar.js:9470) at HTMLDivElement. (fullcalendar.js:12414) at Function.each (jquery-3.2.1.min.js:2)

어떻게 수정합니까? 이 때문에 진행을 할 수 없습니다.

도와주세요.

+1

'$ .fullCalendar.moment ('2014-05-01');'처음에 설정을 시도해 보셨습니까? –

+0

@MuhammadOmerAslam 오류가 발생하지 않지만 실행되지 않습니다. (ri_startDate는 2018-03-01) – won

+0

donot 올바르게 작동 할 때까지 답변으로 추가하십시오. –

답변

1

당신이 순간을 날짜로 January 2018를 보내고 defaultDateJanuary 2018에 할당하는 우리의 논의에 따라 경찰은 인식 RFC2822 또는 ISO 형식이 아닙니다. 순간 건설은 모든 브라우저와 버전에서 신뢰할 수없는 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>

+0

오, 방금 문제를 해결했지만 내가 작성한 내용을 참조 할 것입니다. 정말 고마워요 : P – won

+0

내 대답을 확인하십시오. – won

+1

기꺼이 해결할 수있었습니다 :) –

0

다음과 같이 시도해 보았습니다. 전에 코드에 사용했습니다.

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

'$ ("# datepicker-14")'및'datetimepicker' 무엇을 의미합니까? – won

+0

html의 ID입니다. 나는 그 html에서 날짜를 집어 들고 있었다. –

+0

'dateDefault'와 같은 역할을합니까? – won

1

에 일정 나는 @Muhammad 오메르 아슬 람의 도움으로이 문제를 해결했다.

아약스 부분 :

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

이.