2011-06-24 7 views
0

は、私は、入力フィールドに指定された日付に日/ヶ月/年を追加し、それをマップしようとしているjavascriptを使用して特定の日付に日/月/年を追加すると問題が発生しますか?

 

     var d = new Date(); 
     d.setDate(15); 
     d.setMonth(06); 
     d.setYear(2011); 

     document.getElementById("test").innerHTML=d; 

     d.setDate(d.getDate()+20); 

     document.getElementById("test").innerHTML+="
"+d.getDate()+"/"+d.getMonth()+"/"+d.getYear("YY");

これは実際に

 

Fri Jul 15 2011 12:45:48 GMT+0530 (India Standard Time)
4/7/111

実際に、これは間違っている...それはプリントアウトしなければならない出力します2011年5月7日..私はデフォルトでシステムが1ヶ月間 "30"日かかると思って+20日を追加しますが、結果は5/7/2011になるように実際に6月は30日です。

ここで何が間違っているかについてのご提案です。

+0

あなたは、これは2011年6月15日 'に日付を設定していると考えた場合あなたが20日を追加すると、世界で5月の日数があなたの計算にどのように影響するのでしょうか? –

+0

申し訳ありませんが私は間違って言及している..更新された – balanv

+0

私は参照してください:NVMその後... –

答えて

0

最初にgetFullYearを使用して2011年を取得する方がよいです。getDate()から数値を取得し、20を追加しました。このブレーク日付。 getTime()から長い値を取得し、ミリ秒を追加する必要があります。あなたは、それを0 - Jandate着工のMonthを間違った方法を解釈している

<div id="test"></div> 
<script> 
    var d = new Date(); 
    d.setDate(15); 
    d.setMonth(06); 
    d.setFullYear(2011); 
    document.getElementById("test").innerHTML+=" "+d.getDate()+"/"+d.getMonth()+"/"+d.getFullYear(); 
    d.setTime(d.getTime()+1000*60*60*24*20); 
    document.getElementById("test").innerHTML+=" "+d.getDate()+"/"+d.getMonth()+"/"+d.getFullYear(); 
</script> 
+0

私は次の出力を得る15/6/20/2011 4/7/2011 ...しかしこれも間違っている..それは2011年5月6日でなければならない5/7/2011 – balanv

+0

@balanv - 月に+1を追加すると、正しく理解できます:) – niksvp

0

i think by default the system takes as "30" days for a month and adds the +20 days.. but actually May has 31 days so that result should be 5/7/2011.

.. だからで入力した日付ごとに、それは月の数6Jul 15 2011来ます。

日付に20を追加すると、Aug 04 2011となり、計算に誤解を与える7 - i.e. Augの月番号が直接取得されます。そして、今年のために、はい、あなたの基本は正しい取得することができべきgetFullYear

読むthis ..です

0
>   var d = new Date(); 
>   d.setDate(15); 
>   d.setMonth(06); 
>   d.setYear(2011); 

は同等です:

var d = new Date(2011,6,15); // 15 Jul 2011 

ヶ月間はゼロをベースとしている(1月= 0 、12月= 11)。

Date.prototype.getYearがそのようにReturn YearFromTime(LocalTime(t)) − 1900.としてECMA-262 ED5で指定されています

alert(d.getYear()); // 111 

に対し:

alert(d.getFullYear()); // 2011 
関連する問題