안녕하세요 상기 사이트(Kborad 수정 중)에서 데이터픽커라는 제이쿼리를 스플릿으로 나눠서
차후 1000*60*60*24 로 시간단위로 변환하여
인풋 박사의 datepicker1 벨류와 인풋박스의 datepicker2의 시간 차이로
sell3 인풋에다가 가격을 표기하려고 합니다. (가격은 시간 당 천원)
헌데 현재 보시는 바와 같이 ..
var document.getElementById("datepicker1").value.split("-");
변수 datepicker1 값을 스플릿을 쪼갠 내용을 표기하려하는데 나타나질 않네여..
어떻게 해야할까요..?
<script type="text/javascript">
var dateArray = document.getElementById("datepicker1").value;
function sum()
{
if(document.getElementById("datepicker1").value && document.getElementById("datepicker2").value){
document.getElementById("sell3").value = var document.getElementById("datepicker1").value.split("-");
}
}
</script>
<label>
<span>프로젝트 기간 :</span>
<input type="text" id="datepicker1" onkeyup="sum();" placeholder=" 시작날짜" name="kboard_option_startdate" value="<?php echo $content->startdate?>"> ~ <?php echo " "; ?>
<input type="text" id="datepicker2" onkeyup="sum();" placeholder=" 종료날짜" name="kboard_option_enddate" value="<?php echo $content->enddate?>">
<input type="hidden" id="calculated" name="kboard_option_datedifference" value="<?php echo $content->datedifference?>">
</label>
<label><div>
<span>프로젝트 기간 :</span>
<input type="text" name="sell3" id="sell3" >
</label>
</div>
고수님의 소중한 답변 감사히 받겠습니다.
변수들을 잘 확인해보셔야 할 듯합니다.
dateObj2 변수에는 dateArray2로 적용해주셔야 할 듯합니다.
아래의 코드를 확인해보시겠어요?
function sum(){
var a1 = document.getElementById("datepicker1").value; // a1변수에 id값이 datepicker1인 인풋값을 넣기
var a2 = document.getElementById("datepicker2").value;
var dateArray = a1.split("-"); // dateArray변수에 a1변수 값을 - 기준으로 쪼개기
var dateObj = new Date(dateArray[0], Number(dateArray[1])-1, dateArray[2]); // 배열이 된 dateArray변수 값을 나열하기 가운데 -1인 이유는 자바스크립트 기준 월단위는 0으로 시작하기 때문
var dateArray2 = a2.split("-");
var dateObj2 = new Date(dateArray2[0], Number(dateArray2[1])-1, dateArray2[2]);
var betweenDay = (dateObj2.getTime() - dateObj.getTime()) / 1000 / 60 / 60 / 24; // gettime으로 나열된 변수값을 밀러세컨드 단위로 변환하고 /1000/60/60/24; 일단위 차이로 만든다.
if(betweenDay >= 0 && a1 && a2){
document.getElementById("sell3").value = betweenDay; // 최종적으로 두값의 차이 일 을 마지막 sell3 인풋값으로 넣는다
}
}
변수의 값들이 제대로 입력됐는지 확인하시려면
아래의 코드로 적용해보시겠어요?
function sum(){
var a1 = document.getElementById("datepicker1").value; // a1변수에 id값이 datepicker1인 인풋값을 넣기
var a2 = document.getElementById("datepicker2").value;
var dateArray = a1.split("-"); // dateArray변수에 a1변수 값을 - 기준으로 쪼개기
var dateObj = new Date(dateArray[0], Number(dateArray[1])-1, dateArray[2]); // 배열이 된 dateArray변수 값을 나열하기 가운데 -1인 이유는 자바스크립트 기준 월단위는 0으로 시작하기 때문
var dateArray2 = a2.split("-");
var dateObj2 = new Date(dateArray2[0], Number(dateArray2[1])-1, dateArray2[2]);
var betweenDay = (dateObj2.getTime() - dateObj.getTime()) / 1000 / 60 / 60 / 24; // gettime으로 나열된 변수값을 밀러세컨드 단위로 변환하고 /1000/60/60/24; 일단위 차이로 만든다.
if(betweenDay >= 0 && a1 && a2){
document.getElementById("sell3").value = betweenDay; // 최종적으로 두값의 차이 일 을 마지막 sell3 인풋값으로 넣는다
}
console.log('a1 : ' + a1);
console.log('a2 : ' + a2);
console.log('dateArray : ' + dateArray);
console.log('dateObj : ' + dateObj);
console.log('dateArray2 : ' + dateArray2);
console.log('betweenDay : ' + betweenDay);
}
테스트 시에 위의 코드처럼 적용하시고 onkeyup 이벤트가 발생하면
크롬 브라우저의 개발자 도구(F12키) -> 콘솔(Console) 화면에 표시됩니다.
고맙습니다.
안녕하세요~^^
말씀해주신 코드로 하니까 변수값이 먹힙니다. 감사합니다.~
하지만 제가 최종적으로 표현할 식은
=========================================================================================
<script type="text/javascript">
function sum()
{
var a1 = document.getElementById("datepicker1").value, // a1변수에 id값이 datepicker1인 인풋값을 넣기
a2 = document.getElementById("datepicker2").value;
var dateArray = a1.split("-"); // dateArray변수에 a1변수 값을 - 기준으로 쪼개기
var dateObj = new Date(dateArray[0], Number(dateArray[1])-1, dateArray[2]); // 배열이 된 dateArray변수 값을 나열하기 가운데 -1인 이유는 자바스크립트 기준 월단위는 0으로 시작하기 때문
var dateArray2 = a2.split("-");
var dateObj2 = new Date(dateArray[0], Number(dateArray[1])-1, dateArray[2]);
var betweenDay = (dateObj.getTime() - dateObj2.getTime())/1000/60/60/24; // gettime으로 나열된 변수값을 밀러세컨드 단위로 변환하고 /1000/60/60/24; 일단위 차이로 만든다.
if(a1 && a2){
document.getElementById("sell3").value = betweenDay; // 최종적으로 두값의 차이 일 을 마지막 sell3 인풋값으로 넣는다
}
}
</script>
=========================================================================================
이렇습니다.
데이터값을 밀리리터값으로 치환한 후 datepicker2 - datepicker1 의 시간 차이를 * 비용으로 표현하고 싶습니다.
근데 ..여전히 sell3 셀값에는 입력이 되질 않네여 이유 혹시 아시나요..??
인풋박스 datepicker2, datepicker2에 숫자를 강제로 넣으면 sell값이 적용되는데 ... 이상합니다. ㅠㅠ
안녕하세요~^^
올려주신 코드에 문제가 있는 듯합니다.
sum() 함수를 아래의 코드로 적용해보시겠어요?
function sum(){
if(document.getElementById("datepicker1").value && document.getElementById("datepicker2").value){
document.getElementById("sell3").value = document.getElementById("datepicker1").value.split("-");
}
}
고맙습니다.