Изменение формата при добавлении даты в функцию javascript

0

Я использую функцию Javascript, которая позволяет добавлять дни к текущей дате, но мне приходится сталкиваться с проблемой, когда я пытался изменить формат даты, вот мой рабочий код,

  <body onload="addDate();">
         <br/>
        <h1>Adding number of days to current date in Javascript</h1>
        Today Date (MM / DD / YYYY) : <input type="text" id="date1" readonly/> <br/> <br/>
        Number of days to add : <input type="text" id="days" onChange="datechange()" /> <br/> <br/>
        New Date (MM / DD / YYYY) : <input type="text" id="date2" readonly/>
        <script type="text/javascript">
              function datechange()
              {
                    var d = document.getElementById('days').value;
                    var myDate = new Date(document.getElementById('date1').value);
                    myDate.setDate(myDate.getDate() + parseInt(d));
                    document.getElementById('date2').value = (myDate.getMonth() + 1) + '/' + (myDate.getDate()) + '/' + (myDate.getFullYear());
              }
              function addDate()
              {
                     date = new Date();
                     var month = date.getMonth()+1;
                     var day = date.getDate();
                     var year = date.getFullYear();
                     if (document.getElementById('date1').value == '')
                     {
                           document.getElementById('date1').value = month + '/' + day + '/' + year;
                     }
              }
        </script>

Я попытался изменить формат даты на DD/MM/YYYY, с помощью этого кода,

  <script type="text/javascript">
              function datechange()
              {
                    var d = document.getElementById('days').value;
                    var myDate = new Date(document.getElementById('date1').value);
                    myDate.setDate(myDate.getDate() + parseInt(d));
                    document.getElementById('date2').value = myDate.getDate() + '/' + (myDate.getMonth() + 1) + '/' + (myDate.getFullYear());
              }
              function addDate()
              {
                     date = new Date();
                     var month = date.getMonth()+1;
                     var day = date.getDate();
                     var year = date.getFullYear();
                     if (document.getElementById('date1').value == '')
                     {
                           document.getElementById('date1').value = day + '/' + month + '/' + year;
                     }
              }
        </script>

Но я получаю неправильную ценность. Пожалуйста, кто-то, где я ошибся.

  • 0
    Можете ли вы создать jsfiddle.
Теги:
date

1 ответ

1

Невозможно создать new Date() с dd/mm/yyyy. Попробуй это:

function datechange() {
    var d      = document.getElementById('days').value;
    var from   = document.getElementById('date1').value.split('/');
    var myDate = new Date(from[2], from[1] - 1, from[0]);
    myDate.setDate(myDate.getDate() + parseInt(d));
    document.getElementById('date2').value = myDate.getDate() + '/' + (myDate.getMonth() + 1) + '/' + myDate.getFullYear();
}

Рабочая демонстрация: http://jsfiddle.net/j5sqg/

  • 0
    Нет, я тоже это изменил, но все же у меня проблема.
  • 0
    В чем проблема? Вы сказали, что получаете неправильное значение - какое значение вы получаете и какое значение вы ожидаете тогда?
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню