2012-12-30 42 views
1

這裏是我的代碼,我想在使用onload事件輸入日期文本後在文本框中打印日期。如何在html中輸入文本框中打印日期

<!DOCTYPE html> 
<html> 
    <head> 
     <script> 
     function displayDate() { 
      document.getElementById("fname").value = Date(); 
     } 
     </script> 
    </head> 
    <body onload="displayDate()"> 
     Enter date: <input type="date" id="fname" readonly /> 
    </body> 
</html> 
+0

您確定要輸入type =「date」嗎?如果它是隻讀的,只需使用type =「text」。 – bnieland

+0

日期類型輸入的一個優點是它根據用戶的區域設置自動格式化。 –

回答

2

你必須

  • 正確地創建Date對象(你缺少new
  • 格式,它根據rfc3339(例如:2012/12/30

變化

document.getElementById("fname").value = Date(); 

var now = new Date(); 
var formatedDate = now.getFullYear() + '-' + (now.getMonth() + 1) + '-' + now.getDate();​ 
document.getElementById("fname").value = formatedDate; 

Demonstration

注意,一些瀏覽器接受其他格式,但瀏覽器不,因爲它完全符合the norm

+0

我怎樣才能得到'var formatDate = now.getFullYear()+'/'+(now.getMonth()+ 1)+'/'+ now.getDate();'成'dd/mm/yyyy'格式? – 2015-01-09 11:25:05

0

試試這個:在HTML5

function displayDate() { 

    var now = new Date(); 

    var day = ("0" + now.getDate()).slice(-2); 
    var month = ("0" + (now.getMonth() + 1)).slice(-2); 
    var today = now.getFullYear() + "-" + (month) + "-" + (day); 

    document.getElementById("fname").value = today; 
}​ 

日期控件接受年的格式 - 月 - 日而在JavaScript中new Date()返回日期如例如:孫二零一二年十二月三十〇日10時09分05秒GMT + 0230

demo

2

輸入框的值屬性是一個字符串,但你的函數試圖分配日期對象。您需要先將其轉換爲字符串。這裏有一些代碼可以做到這一點:

<!DOCTYPE html> 
<html> 
    <head> 
     <script> 
     function displayDate() { 
      var today=new Date(); 

      var date=today.toISOString().slice(0, -14); 
      // Strip last 14 characters, ISO format is like 
      // 2012-12-30T17:41:49.027Z but we want 
      // 2012-12-30 

      document.getElementById("fname").value=date; 
     } 
    </script> 
    </head> 
    <body onload="displayDate()"> 
     Enter date: <input type="date" id="fname" readonly> 
    </body> 
</html> 
相關問題