2015-01-22 3 views
0

을 사용하여 계산을 수행하고 있습니다. 일부 날짜 필드가 있으며 Bootstrap datepicker으로 할당되어 있습니다. javascript 함수에서 나는 onBookingDate이라는 필드의 날짜를 알아야합니다. 나는 이렇게 할 수있다.내 웹 페이지에 부트 스트랩 datepicker

var on_BookingDate = jQuery('#datepick_onBooking').val(); 

그때 나는 8 개월 추가 한 다음 위의 방법을 사용하여 검색되는 다른 날짜 값으로 새 날짜 값을 비교해야합니다. 이것은 내가 사용한 코드입니다. 날짜를 비교하기 위해

var on_BookingDate = jQuery('#datepick_onBooking').val(); 
var dateArray = on_BookingDate.split("-"); 
//dateArray[1] contains the month value 

var dateObj = new Date(dateArray[2], dateArray[1] - 1, dateArray[0]); 
dateObj.setMonth(dateObj.getMonth() + 8); 
var intFreeLastDate = dateObj.getDate() + "-" + (dateObj.getMonth() + 1) + "-" + dateObj.getFullYear(); 

(모든 날짜는 dd-mm-yyyy의 형태로 존재), 그들은 시간 값해야합니다. 그

  1. .datepicker('getDate')
  2. getTime()

을 위해 사용되어야한다. 내가

var int_free_last_date = intFreeLastDate.datepicker('getDate'); 
alert("int free last date get date = "+int_free_last_date); 

을 시도 할 때 그러나 나는 왜이

Uncaught TypeError: undefined is not a function 

이며, 오류가 다음 얻을? 그리고 이것을 고치는 방법. 날짜 형식의 int_free_last_date이 필요하지 않습니까 ??

JS 바이올린http://jsfiddle.net/Lnmvc5ao/

+0

? 우리가 예제로 사용할 JSFiddle을 만들 수 있습니까? –

+0

라인은'var int_free_last_date = intFreeLastDate.datepicker ('getDate');' – vigamage

+0

'console.log (intFreeLastDate)'는 그 라인 바로 위에 호출되면 무엇을 반환합니까? –

답변

1

나는이 문제를 볼 생각합니다. 이 줄은

.datepicker('getDate') 기능을 잘못 사용하고 있습니다. 그런 식으로 호출하면 HTML 양식 요소에서 날짜 값을 가져 오려고합니다. 예를 들어,라는 경우 :

jQuery('#datepick_onBooking').datepicker('getDate'); 

그것은 ('#datepick_onBooking') 요소의 날짜 선택기에 존재하는 날짜 값을 반환합니다. 당신이 상상할 수있는 01-02-2015undefined대로 작동하지 않는,

var int_free_last_date = 01-02-2015.datepicker('getDate'); 

: intLastFreeDate01-02-2015 같은 것을 있었다면, 그 라인에 해당 될 것이다.

난 당신이 솔루션에 가까운 것 같아요, 당신은 단지 시간 값으로 이미 존재하는 날짜를 포맷하고 비교해야하는 데 도움이

var on_BookingDateTime = on_BookingDate.getTime(); 
var lastFreeDateTime = intLastFreeDate.getTime(); 
// Compare em however you would. 

희망!

편집

on_BookingDate 모두 이후 및 intFreeLastDate는 다음 비교 한 다음 해당 개체에 getTime()를 호출, 자신의 -별로 분할하고 밖으로 date 개체를 만들 수 있습니다, 유효 날짜 문자열 dd-mm-yyyy 있습니다.어떤 라인은 그 오류의 원인이되는

var temp1= on_BookingDate.split("-"); 
var temp2 = intFreeLastDate.split("-"); 
// [0] is day, [1] is month, [2] is year. 

var date1 = new Date(temp1[2], (temp1[1] - 1), temp1[0]); 
var date2 = new Date(temp2[2], (temp2[1] - 1), temp2[0]); 

var time1 = date1.getTime(); 
var time2 = date2.getTime(); 

// Then compare them! 

JSFiddle Update

+0

으로 날짜를 반환합니다. 우리는'.datepicker ('getDate')'를 사용해야합니다. 우리는'.getTime();'만 사용할 수 있습니다. 그렇지 않니? – vigamage

+0

흠. 좋아, 뭔가를 알아야하고,'onBookingDate'와'intLastFreeDate'의 정확한 값은 무엇입니까? –

+0

은'onBookingDate'은 01-01-205이고'intFreeLastDate'는 01-09-2015입니다. js 바이올린을 추가했습니다. – vigamage