2017-11-19 16 views
0

자바 스크립트에서 체크인 날짜와 체크 아웃 날짜가 "dd-mm-yy"형식 인 두 개의 vars (aankomstDatum & vertrekDatum)가 있습니다. 이러한 변수는 jQuery 날짜 표시기가있는 텍스트 입력 필드에서 가져옵니다.이 가격은 예약 가격 계산에 사용하기 위해 올바르게 날짜로 변환 되었습니까?

나는 aankomstDatum과 vertrekDatum에 따라 숙박료를 계산하고 싶다. 그래서 나는 여전히 vars를 날짜로 변환해야만 하는가? 다음 코드는 DD-MM-YY부터 함께했던 :

var parts = aankomstDatum.split('-'); 
var aankomstDatumDate = new Date(parts[2],parts[0]-1,parts[1]); 
document.getElementById("aankomstDate").innerHTML = aankomstDatumDate; 

내가 출력 aankomstDatumDate 나는 다음과 같은 형식의 작업 날짜를 얻을 때 : 토 십일 GMT + 0100 (11) 2017 0시 0분 0초 (로맨스 표준 시간).

내 두 가지 질문 :

1)이 단계가 필요합니까? 내 생각의 기차가 내가 예약 시작 가격을 계산하는 데 사용할 수 있기 전에 날짜로 시작하여 날짜로 변환하는 것이 맞습니까?

2) 출력 된 날짜는 어디입니까? 11 월 11 일 2017 00:00:00 GMT + 0100 (Romance Standard Time) 예약 가격을 계산하는 데 사용할 수 있습니까? 또는 "dd-mm-yy"와 같은 형식으로하는 것이 더 좋습니다. 그렇다면 어떻게 달성 할 수 있습니까?

감사합니다.

+0

제목의 질문에 대한 대답은 "아니오"입니다. 입력 형식이 dd-mm-yy 인 경우 new date (parts [2], parts [0] -1, parts [1])는 new date (parts [2], parts [1] - 1, part [0])'(즉, 당신은 달과 요일을 전치했습니다). 또한 2 자리 연도를 사용하는 것은 좋지 않습니다. OP의 정보를 감안할 때 다른 2 가지 질문에 답하는 것이 가능하지 않다고 생각합니다. [* 좋은 질문을하는 방법 *] (http://stackoverflow.com/help/how-to-ask) – RobG

답변

1

응답하여 두 가지 질문 :

  1. 예, 생각이 열차가 올바른지 - 당신은 당신이 그 날짜에 작업을 할 수 있도록 Date 객체로 문자열을 변환 할.
  2. 날짜에 일종의 산술 연산을 사용하려는 경우 해당 날짜에 getTime()을 사용하면 Unix Time (밀리 초)의 날짜가 반환됩니다. 예를 들어

, 당신은 사용자가 (checkoutDate - checkinDate)에 대한 체크 된 일 수를 계산하기를 원한다면, 당신은이 날짜 개체를 받아들이는이 기능을 사용합니다 :

function daysDifference(date1, date2) { 
 

 
    let diff = date2.getTime() - date1.getTime(); 
 

 
    return Math.round(diff/(1000*60*60*24)); // divide by number of milliseconds in a day 
 
} 
 

 
// Example 
 
var date1 = new Date(); // today 
 
var date2 = new Date(); 
 

 
// add 5 days to date2 
 
date2.setDate(date2.getDate() + 5); 
 

 
var daysCheckedIn = daysDifference(date1, date2); 
 

 
console.log("User checked in for: " + daysCheckedIn + " days.");

+0

감사합니다.이 정보는 제게 많은 도움이됩니다! 하지만 가격은 월에 따라 다르므로 밀리 초 단위로 정보를 잃을까요? –