2012-05-22 70 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