0

jsfiddleに次のコードスニペットがあります。私はカレンダーに日数として与えられた数字を追​​加しようとしています。日時ではなく月を追加するブートストラップ日時ピッカー

HTMLコード:

<input id="firstDate"/> 
<input type="hidden" value="11" id="days"> 
<br/> 
<input id="secondDate"/> 

Javascriptを:

<script> 
var pickerOptsGeneral = { 
format: "dd/mm/yyyy", 
autoclose: true, 
minView: 2, 
maxView: 2 
}; 

$('#firstDate') 
.datetimepicker(pickerOptsGeneral) 
.on('changeDate', function(ev){ 
var days = document.getElementById("days").value; 
var oldDate = new Date(ev.date); 
var newDate = new Date(); 
newDate.setDate(oldDate.getDate() + days); 

secondDate.val(newDate.getDate()+"/"+(newDate.getMonth()+1)+"/"+newDate.getFullYear()); 
secondDate.datetimepicker('update'); 
}); 
var secondDate = $('#secondDate').datetimepicker(pickerOptsGeneral); 
</script> 

上記のコードは、数ヶ月の代わりの日を追加しています。

 newDate.setDate(oldDate.getDate() + 11); 

これは私が欲しいの出力が得られます:私は日付

01/06/2017を選択した場合、私は日付をハードコードした場合、出力は19/9/2017

になります。誰かが私にこれを助けることができますか?

答えて

1

同じため、この...

var pickerOptsGeneral = { 
    format: "dd/mm/yyyy", 
    autoclose: true, 
    minView: 2, 
    maxView: 2 
}; 
$('#firstDate') 
    .datetimepicker(pickerOptsGeneral) 
    .on('changeDate', function(ev){ 
    var days = parseInt(document.getElementById("days").value); 
    var oldDate = $("#firstDate").data("datetimepicker").getDate(); 
    var oldDateOriginal = new Date(oldDate); 
    var newDate = new Date(oldDateOriginal); 
    newDate.setDate(newDate.getDate() + days); 
    secondDate.val(newDate.getDate()+"/"+(newDate.getMonth()+1)+"/"+newDate.getFullYear()); 
    secondDate.datetimepicker('update'); 
}); 
var secondDate = $('#secondDate').datetimepicker(pickerOptsGeneral); 

JSFfiddleのリンクを試してみてください - あなたは<input type="hidden" value="11" id="days" />の値を取得するとhttp://jsfiddle.net/sdyoxx2r/9/

+0

嬉しいそれは:)役立ちます@Tanjaフォースバーグ –

+0

とはいえ1件の合併症があります。日付「01/08/2017」を選択すると、結果は「12/6/2017」になります。それは1日だけ増分します。あなたはjsfiddleをチェックしていただけますか? –

+0

大丈夫私はそれを調べて、あなたに戻ってきます。 –

0

それは文字列として値を返します。

したがって、日の値を文字列から整数に変換する必要があります。

var pickerOptsGeneral = { 
format: "dd/mm/yyyy", 
autoclose: true, 
minView: 2, 
maxView: 2 
}; 
$('#firstDate').datetimepicker(pickerOptsGeneral).on('changeDate',function(ev){ 
var days  = parseInt($('#days').val()); 
var oldDate = new Date(ev.date); 
var newDate = new Date(); 
newDate.setDate(oldDate.getDate() + days); 
secondDate.val(newDate.getDate()+"/"+newDate.getMonth()+1)+"/"+newDate.getFullYear()); 
secondDate.datetimepicker('update'); 
}); 
var secondDate = $('#secondDate').datetimepicker(pickerOptsGeneral); 
+0

提案していただきありがとうございます。私は上記のコメントに言及した別のバグを持っています。 –

+0

これを試してください 'newDate.setMonth(oldDate.getMonth()、oldDate.getDate()+ days);' –

関連する問題