질문자의 질문의도를 명확히 알수 없고, 먼저 달린 답변이 맞는것 같아서 패스..

 

 

질문)

 

안녕하세요.

html 셀렉트 박스에 있는 value를 선택하면

자바스크립트에서 그 값을 기준으로 한달전 날짜를 구하고 싶은데

어떻게해야 하는지 알려주세요

 

 

 

먼저달린 답변)

 

셀렉트박스, 날짜 이외 아무정보가 없어 임의 정의합니다.


1. 날짜형식은 YYYY-MM-DD 형식으로 함.
2. 날짜 형식으로 데이타가 들어 있음.
3. 셀렉트 박스 변경시 1달전값을 추출하여 옆에 출력함.

 

 

1. SOURCE

 

<meta charset="utf-8"

<script language="javascript"> 

Number.prototype.to2=function(){return this<10?'0'+this:this;} 

 

Date.prototype.setYMD=function(ymd){

       var a = ymd.match(/(\d{4})\-(\d{2})\-(\d{2})/);

       return new Date(a[1],a[2]-1,a[3]);

 

Date.prototype.getYMD=function(){

       return this.getFullYear() + '-' + (this.getMonth()+1).to2() + '-' + this.getDate().to2() 

 

function abc(o){

       var dt=(new Date()).setYMD(o.value);

       dt.setMonth(dt.getMonth()-1);

       document.getElementById('rs').innerHTML = dt.getYMD(); 

 

window.onload=function(){

       document.getElementById('ymd').onchange(); 

</script> 

<body> 

<select id="ymd" onchange='abc(this)'>

    <option value="2016-01-14" selected>2016-01-14

    <option value="2016-02-14">2016-02-14

    <option value="2016-03-14">2016-03-14

    <option value="2016-04-14">2016-04-14

    <option value="2016-05-14">2016-05-14 

</select>

  => 

<span id="rs">0000-00-00</span> 

</body> 

 

 

2. RUN

 

https://jsfiddle.net/zmg0kbr4/

 

 

 

내 답변)

 

1. HTML

 

<select id="seledtMon" onchange="chMon(this.value)">
  <option value="0">오늘날짜</option>
  <option value="1">1달전</option>
  <option value="2">2달전</option>
  <option value="3">3달전</option>
  <option value="4">4달전</option>
  <option value="5">5달전</option>
  <option value="6">6달전</option>
</select>
<br/>
<br/>
<div id=resultMon></div>

 

 

2. SCRIPT

 

var dt = new Date();

 

var month = dt.getMonth()+1;
var day = dt.getDate();
var year = dt.getFullYear();

 

function chMon(mVal){
  var mon;
  var yr;
  var oMon = month - mVal;

 

  if(oMon == 0){
    mon = 12 - oMon;
    yr = year - 1;
  }else if(oMon < 0){
    mon = 12 -(-oMon);
    yr = year - 1;
  }else{
    mon = month - mVal;
    yr = year;
  }

  document.getElementById("resultMon").innerHTML= "날짜 : " + yr + "년 " + mon + "월 " + day + "일";
}

 

document.getElementById("resultMon").innerHTML= "날짜 : " + year + "년 " + month + "월 " + day + "일";

 

 

3. RUN

 

https://jsfiddle.net/fj56ucuy/1/