提前谢谢大家。我有一个表格,以日期作为输入。我必须在用户输入日期的30天之前创建一个发送电子邮件的功能。我正在制作一个隐藏字段,将用户输入的日期转换为30天以下,然后在数据库中提交 这是代码:
<input type ="hidden" name="date_time" onblur="setExpDate(this.value)"/>
<script type="text/javascript">
function setExpDate(){
// set number of days to add
var interval = 30;
var userdate=<?php echo $_POST['effd'];
expDate.setDate(userdate.getDate() - interval);
return expDate ;
};
</script>
<input type="hidden" size="10" maxlength="10" id="date_time" name="date_time" value="setExpDate()">
date entered by user<input type="text" name="effd"/>
please check the code where i am making mistake and if you have any other solution .
非常感谢你 仅供参考我使用joomla并制作我自己的php函数
答案 0 :(得分:0)
我已在http://codebins.com/bin/4ldqpah
为上述问题完成了完整的垃圾箱<强> HTML:强>
<div id="panel">
<form id="frm1" method="post">
<input type="hidden" id="h_date" name="h_date" />
Enter Date:
<input type="text" name="txtdate" id="txtdate" onblur="setExpDate(this.value);" size="15"/>
<div id="hiddendiv">
</div>
</form>
</div>
<强> CSS:强>
#panel form{
border:1px solid #454545;
padding:10px;
width:350px;
background:#a1a6a4;
}
#panel input{
border:1px solid #456699;
}
#panel input:focus{
background:#afffff;
}
<强>使用Javascript:强>
function setExpDate(strdate) {
if (strdate != "" && strdate != null && typeof(strdate) != "undefined") {
if (isValidDate(strdate)) {
var interval = 30;
var userdate = new Date(strdate);
var newdate = new Date(userdate.getTime() - 30 * 24 * 60 * 60 * 1000);
document.getElementById("h_date").value = (newdate.getMonth() + 1) + "/" + newdate.getDate() + "/" + newdate.getFullYear();
document.getElementById("hiddendiv").innerHTML = "Set Hidden Date:" + document.getElementById("h_date").value + " (Before 30 days)";
} else {
alert("Please enter valid date.");
}
}
}
function isValidDate(dateStr) {
// Checks for the following valid date formats:
// MM/DD/YYYY
// Also separates date into month, day, and year variables
var datePat = /^(\d{2,2})(\/)(\d{2,2})\2(\d{4}|\d{4})$/;
var matchArray = dateStr.match(datePat); // is the format ok?
if (matchArray == null) {
alert("Date must be in MM/DD/YYYY format")
return false;
}
month = matchArray[1]; // parse date into variables
day = matchArray[3];
year = matchArray[4];
if (month < 1 || month > 12) { // check month range
alert("Month must be between 1 and 12");
return false;
}
if (day < 1 || day > 31) {
alert("Day must be between 1 and 31");
return false;
}
if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 31) {
alert("Month " + month + " doesn't have 31 days!")
return false;
}
if (month == 2) { // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day > 29 || (day == 29 && !isleap)) {
alert("February " + year + " doesn't have " + day + " days!");
return false;
}
}
return true; // date is valid
}
上的解决方案