0

変数をプロンプト ボックスから日付文字列に戻したい。したがって、人が 5 日足すと、日付は 5 日増えます。私はjavascriptが初めてで、これが私の最初のテストスクリプトであり、回答にリストできるリソースを読んでいきます。

<html>

 <head>
   <script type="text/javascript">
     var currentTime = new Date();
     var month = currentTime.getMonth() + 1;
     var day = currentTime.getDate();
     var year = currentTime.getFullYear();
     var dateString = "Today's Date " + month + "/" + day + "/" + year;
     function loadDate(){
       document.getElementById('dateSpan').innerHTML = dateString;
     }

   </script>

 </head>
 <body onload='loadDate()'>
   <form name=myform>
     <span id='dateSpan'></span><input type=button value="add days" onclick="var name=prompt('How many days do you want to add?','5 or 6')"/>
   </form>
 </body>

4

2 に答える 2

0

次のようなものが役立つはずです。検証やチェック (要素の日付文字列は正しいか? ユーザーが数字を入力したか?) は行わないことに注意してください。そのため、すべてを追加してエラーに対処する必要があります。

function updateDate(el) {
  // get the text of the element
  var text = el.innerHTML;

  // Convert to a date object
  var b = text.split('-');
  var date = new Date(b[0], b[1] - 1, b[2]);

  // Ask for days to add
  var toAdd = prompt('How many days to add?');

  // Adjust date
  date.setDate(date.getDate() + Number(toAdd));

  // Write date to page
  el.innerHTML = date.getFullYear() + '-' + 
                 addZ(date.getMonth() + 1) + '-' +
                 addZ(date.getDate());

  // Helper just for this function
  function addZ(n) {
    return (n < 10? '0' : '') + n;
  }
}

およびいくつかの関連する HTML:

<span id="dateSpan" onclick="updateDate(this)">2012-05-22</span>

また、innerHTML もすべての HTML コンテンツを取得することに注意してください。ただし、このような場合は問題ありません。テキストだけが必要な場合は、サポートされている機能テストに基づいてtextContentまたはinnerTextを使用します。

編集

機能させるために HTML の抜粋を追加しました。日付は ISO8601 の短い形式であることに注意してください: 年-月-日。

于 2012-05-22T03:26:28.220 に答える
0

私はdate.js libを使用します。

これにより、日付の操作がはるかに簡単になり、十分に文書化されています。

http://www.datejs.com/

次に、追加する日数が決まったら、日付を簡単に上げることができます.

//Assuming Xdays is a var with your number of days.
var today = Date.today();
var past = Date.today().add(-Xdays).days();
var future = Date.today().add(Xdays).days();

//format to a string
Date.today().toString("d-MMM-yyyy"); // 19-Nov-2007
于 2012-05-22T21:37:08.350 に答える