2013-02-15 3 views
0

Я делаю код, где, когда я выбрал дату начала, автоматически появится дата окончания. дата окончания составляет +3 дня с даты начала работыpass php date to javascript

<input type="date" name="start_date" id="start" onKeyUp="date()"> 
<input type="text" name="end_date" id = "end" onKeyUp="date()" disabled /> 

<script type = "text/javascript"> 
function date() { 
var startdate = document.getElementById('start'); 
var enddate = document.getElementById('end'); 

enddate.value = startdate + 3 days; 
} 
</script> 

этот enddate.value = startdate + 3 дня; Я знаю, что код неправильный. Я не знаю, как передавать даты на javascript. пожалуйста, помогите

+0

Я думаю, вам нужно создать объект даты – ScoRpion

ответ

1
<input type="text" name="num_days" id = "days" /> 
<input type="date" name="start_date" id="start" onChange="date()"> 
<input type="text" name="end_date" id = "end" onKeyUp="date()" /> 

    <script type = "text/javascript"> 
    function date() { 
     var numdays = document.getElementById('days'); 
    var startdate = document.getElementById('start'); 
    var enddate = document.getElementById('end'); 
    //conver you selected stuff to a proper date format 
    var old = new Date(Date.parse(startdate.value)); 
    //take a new date 
    var newdate = new Date(); 
     days = parseInt(numdays.value); 
    // add how many days you want to add i use 3 you can use as many 
    newdate.setDate(old.getDate()+days); 
    enddate.value = newdate.getFullYear()+'-'+(newdate.getMonth()+1)+'-'+newdate.getDate(); 
    } 
    </script> 
+0

я не отредактированный мой код – rohitarora

+0

ничего не произошло:/его не меняется – arukiri123

+0

Whats проблема, вы просто хотите, чтобы выбрать дату и хотите для отображения на 3 дня вперед в правом поле ввода справа? – rohitarora

0

Просто пройти начальную дату в date()

var today = new Date(document.getElementById('start')); 
var dd = today.getDate(); 
var mm = today.getMonth()+1;//January is 0! 
var yyyy = today.getFullYear(); 
if(dd<10){ 
    dd='0'+dd 
} 
if(mm<10){ 
    mm='0'+mm 
} 
var startdate=yyyy+'-'+mm+'-'+dd ; 
var enddate=yyyy+'-'+mm+'-'+(parseInt(dd)+3) ; 

Это даст вам 2 даты:

  1. дата начала

  2. дата начала + 3 дня т.е. enddate

Я надеюсь, что это вам поможет!

+0

даты введены пользователем. Мне нужно получить значение, введенное во входную дату, а затем передать его в js – arukiri123

+0

@ arukiri123, в каком формате вы получаете дату? – sandip

+0

Формат даты - Y-m-d – arukiri123

0

попробовать здесь DEMO

function mydate() { 
    var targetDate = new Date(); 
    targetDate.setDate(targetDate.getDate() + 3); //how many days ahead 

    var dd = targetDate.getDate(); 
    var mm = targetDate.getMonth() + 1; // 0 is January, so we must add 1 
    var yyyy = targetDate.getFullYear(); 
    var dateString = yyyy + "-" + mm + "-" + dd; 
    return dateString; 
} 
+0

, но даты вводятся пользователем. как я могу получить значение поля даты, а затем передать его в js? – arukiri123

+0

какой формат даты они дают? – Keezy

+0

Формат даты Y-m-d – arukiri123