2012-05-22 71 views
4

經過一段時間後,我重新發現了HTML。HTML輸入預填充日期

我只使用HTML和JavaScript以及Salesforce。我有兩個日期輸入字段。 我很好奇,看看是否有任何簡單的方法來填充這些字段: a。今天的日期 b。日期前6個月。

<input type="text" id="toDate" size="10" onmouseover="initialiseCalendar(this, 'toDate')"/> 

感謝, 卡爾文

+0

什麼日期你想要顯示的格式? –

+0

yyyy-mm-dd格式。謝謝。 –

+2

你確定在mouseover上填充它們是件好事嗎?所以,每當鼠標在場上徘徊時,它就會設置日期。 – MaxArt

回答

2

填充今天的日期:

var today = new Date(); 
document.getElementById("toDate").value = today.getFullYear() + "-" 
     + String(today.getMonth() + 101).slice(-2) + "-" 
     + String(today.getDate() + 100).slice(-2); 

6個月過去:

var past = new Date(); 
past.setMonth(past.getMonth() - 6); // 
document.getElementById("toOldDate").value = past.getFullYear() + "-" 
     + String(past.getMonth() + 101).slice(-2) + "-" 
     + String(past.getDate() + 100).slice(-2); 
+0

你的6個月過去的代碼在這裏不工作http://jsfiddle.net/Rk9PL/4/ – mattytommo

+0

這是因爲我copypasted太多:P現在修復。忘了將'今天'改爲'過去'一次。 – MaxArt

+0

LOL剛剛看到,我們使用了相同的代碼,但它是預期的,我猜是這樣做:) – mattytommo

3

下面的JavaScript設置你的文本框爲今天的日期的value,格式:YYYY-MM-DD。看看我如何在本月添加1? getMonth()回報0-11當前月份,所以1被添加到它:

var today = new Date(); 
document.getElementById("toDate").value = today.getFullYear() + "-" + 
    parseInt(today.getMonth()+1) + "-" + ​​​​​​today.getDate();​​​​​ 

DEMO:Fiddle

如果一個月或一天都低於10值得注意的是,雖然,你」每個人只會得到一位數字。讓我知道這是否是一個問題。

編輯:要獲得從今天起,用6個月:

var today = new Date(); 
var past = today.setMonth(today.getMonth() - 6); 
+2

由於參數已經是一個整數,所以不需要'parseInt'。另外,Richard說他想要'yyyy-mm-dd'格式。 – MaxArt

+0

感謝mattytommo,有什麼想法我可以在今天之前6個月獲得日期? –

+1

@MaxArt編輯以反映格式,謝謝。你必須在上面的場景中使用'parseInt',因爲它在一個內置字符串的中間,所以只需在今天的日期做+1就可以得到第41個月的結果:) – mattytommo