我在工作中陷入了深渊,我从小就知道纯 HTML(90 年代中期),我被要求在工作中更改 PHP 中的表单,我可以更改由以下人员编写的 PHP 代码其他人,但我无法自己编写。我已经将此表格更改为我想要的样子,但是我想更改 1 位,如果有人可以提供帮助,我们将不胜感激...
在网上搜索和尝试了 2 天,我有以下内容
<p class="quest">Date from: <input type="text" name="acc2" class="tcal" value="" /> to: <input type="text" name="acc3" class="tcal" value="" />
它使用 javascript 弹出一个日历(tigra 日历),然后返回 2 个日期(acc2 和 acc3),日期为 d/m/Y (DD/MM/YYYY) 格式(欧洲/澳大利亚的标准格式)/新西兰)。 我想要做的是让它检查差异是否大于 42 天(6 周),如果是,我希望它显示一些带有链接的文本(42 天或更短是可以的)。 如果我把页面作为测试:
<?php echo($acc3); ?>
然后它在页面上显示 1341442800(在选择日期之前),如果用户选择了一个日期,那么上面的数字会保留(不是动态的)
我想要的是可能的吗? 如果没有,是否可以在提交时进行检查并弹出警报(没有链接)? 我目前使用 Javascript 来检查表单,一个例子是:
<script language="javascript" type="text/Javascript">
<!--
function collect() {
if(document.all.ct.value == "TempAcc")
{
if(document.all.acc7.value.length <11)
{
alert("You need to fill in your contact number with your FULL number including STD code.");
return false;
}
}
}//end function collect
//-->
</script>
任何对此的帮助将不胜感激,请尝试具体说明任何代码,因为我仍然是一个初学者。 提前致谢。
最佳答案
这对我有用:Live demo on fiddle.net
// parse dates from DD/MM/YYYY to YYYY/MM/DD
var oldBegin = parseDate("03/06/2012");
var oldEnd = parseDate("07/06/2012");
// calculate difference and format to days
var diff = Math.round((oldEnd - oldBegin)/1000/60/60/24);
alert(diff);
function parseDate(str) {
var m = str.match(/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/);
return (m) ? new Date(m[3], m[2]-1, m[1]) : null;
}
编辑: Include jQuery到您的网页。它将帮助您处理 javascript 部分。 给你的两个输入字段一个唯一的 id(比如 id="date1"和 id="date2"),然后在 javascript 中获取值
$('date1').val();
$('date2').val();
整个代码应该是这样的:
<script type="text/javascript">
//The code will trigger when the user leaves the second input field
$("#date2").focusout(function() {
// parse dates from DD/MM/YYYY to YYYY/MM/DD
var date1 = parseDate($('date1').val());
var date2 = parseDate($('date2').val());
// calculate difference and format to days
var diff = Math.round((date2 - date1)/1000/60/60/24);
alert(diff);
function parseDate(str) {
var m = str.match(/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/);
return (m) ? new Date(m[3], m[2]-1, m[1]) : null;
}
});
</script>
您现在可以添加一些 if 语句来检查一个输入是否为空。
关于PHP 表单,检查 2 个日期是否相隔不远,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11339884/