2016-09-01 12 views
0

ほとんど自動化されたフォームをまとめようとしています。私は現在の日付をうまく取得していますが、ユーザーの情報を収集して日付を入力して、フォームの別の部分にも+1年を置くことに問題があります。 I. D.O.B = 08/06/2016フォームのさらに下に移動すると、2011年8月6日に失効します。私は現在の日付を自動的に入力することができますが、私が試してみると、ユーザーから入力された日付を取得するときには、より低い日付を埋めるものはありません。私は、設定した日付やのdocument.getElementByIdを使用して、新しいVAR(「DOB」)を作るが、私は持って何を使用して試したのdocument.getElementById(「DOB」)ユーザーが入力した日付オブジェクトをコピーします。

function datePone() 
{ 
    var date = new Date(); 

    var day = date.getDate(document.getElementById('dob')) 
    var month = date.getMonth(document.getElementById('dob')) + 1; 
    var year = date.getFullYear(document.getElementById('dob')) + 1; 

    if (month < 10) month = "0" + month; 
    if (day < 10) day = "0" + day; 

    var oneYear = year + "-" + month + "-" + day;  
    document.getElementById("dateOneYear").value = oneYear; 

} 

を使用して日付を取得しようとしました試したことがこれまでに働いていた。 「DOB」以来

+2

ですが? –

+0

function datePone() { \t var date = new Date(); \t \t \t \tするvar日= date.getDate(docmument.getElementbyID( 'DOB')) \tするvar月= date.getMonth(docmument.getElementbyID( 'DOB'))+ 1; \t var year = date.getFullYear(docmument。getElementbyID( 'dob')))+ 1; \t if(month <10)month = "0" + month; \t if(day <10)day = "0" + day; \t var oneYear =年+ " - " +月+ " - " +日; \t document.getElementById( "dateOneYear")。value = oneYear; \t \t \t \t } – SaithRashul

+0

あなたの質問に追加してください。 –

答えて

0

を使用すると、値プロパティを使用する必要が入力されたデータを取得するので、また、私は日付を操作することmomentjsライブラリを使用することをお勧め

document.getElementById('dob').value 

を試しに、入力フィールドです。

あなたが持っている
+0

ありがとうございます。なぜ私はそれを考えなかったのか分からない。私はもう少しそれをしなければならなかったが、それはトリックでした。 – SaithRashul

+0

嬉しいことに、このケースで私の答えを記入してください、ありがとう – tratto

0

var day = date.getDate(document.getElementById('dob')) 

のgetDateメソッドは引数をとりませんので、それらは無視され、上記と同等です:あなたは何を指定しない

var day = date.getDate() 

あなたが文字列のために使用しているフォーマット "08/06/2016"はあいまいです。それは6月8日か8月6日かを表しますか?

DateコンストラクタやDate.parseを使用して、日付文字列を解析したり、独自の関数を記述したり、ライブラリを使用したりしないでください。また、2016年2月29日のような日付に1年追加すると、2017年3月1日に終了するので、それを受け入れるか、2017年2月28日に変更するルールを適用する必要があります。

いずれにせよ、入力が形式DD/MM/YYYYとあなたはyyyy-mm-dd形式で出力日付をしたい、あなたは次のようにライブラリまたは小さな関数を使用することができます。

のようなライブラリを使用して

// Parse string in d/m/y format 
 
// If invalid, return invalid Date 
 
function parseDMY(s){ 
 
    var b = s.split(/\D/); 
 
    var d = new Date(b[2], --b[1], b[0]); 
 
    return d && d.getMonth() == b[1]? d : new Date(NaN); 
 
} 
 

 
// Return date string in yyyy-mm-dd format 
 
function toISODate(d) { 
 
    return d.getFullYear() + '-' + 
 
    ('0' + (d.getMonth()+1)).slice(-2) + '-' + 
 
    ('0' + d.getDate()).slice(-2); 
 
} 
 

 
// Parse string to Date 
 
var d = parseDMY('06/08/2016'); 
 
// Add one year 
 
d.setFullYear(d.getFullYear() + 1); 
 

 
console.log(toISODate(d));

fecha.jsを使用して文字列を解析すると、

var d = fecha.parse('06/08/2016','DD/MM/YYYY'); 

と出力フォーマット:あなたのコードが

fecha.format(d, 'YYYY-MM-DD') 
関連する問題