PHP形式,检查2个日期相差不远
PHP form, checking 2 dates aren't too far apart
我在工作中被投入到深渊,我从小就知道纯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>
任何这方面的帮助将不胜感激,请尝试具体使用任何代码,因为我仍然是初学者。提前谢谢。
这对我有用: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;
}
编辑:将 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和Javascript编写的问题/答案
.PHP
$date1 = "2007-03-24";
$date2 = "2009-06-26";
$diff = abs(strtotime($date2) - strtotime($date1));
$years = floor($diff / (365*60*60*24));
$months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));
printf("%d years, %d months, %d days'n", $years, $months, $days);
爪哇语
var oldBegin = ...
var oldEnd = ...
var newBegin = ...
var newEnd = new Date(newBegin + oldEnd - oldBegin);
试试这个:
- 如何在javascript中获取两个日期之间的周六和周日的日期
- 如何在多个jQueryUI日期选择器中屏蔽特定日期
- 如何用moment.js列出两个日期之间的所有月份
- 两个日期时间选择器
- 如何在JavaScript中比较两个日期
- 如何验证日期、月份和日期的3个独立输入字段;年使用jquery或javascript
- moment.js在两个时区格式的日期之间存在差异
- Javascript-如何使用bootstrap日期时间选择器自动计算两个时间输入之间的差异
- 通过将6个月添加到今天来获得最后一个月的日期's日期
- Javascript两个日期选择器冲突
- 如何从日期范围选择器中获取两个日期
- 用时间戳获取两个不同日期之间的时间差
- 从第一个日期选择器定义第二个日期选择器的开始日期
- JavaScript函数,用于计算两个日期之间的年、月和天数
- 使用javascript将两个输入的日期添加在一起
- 再次使用JavaScript计算两个日期之间的天数
- Mongoose查询在两个日期时间之间提取数据
- 使用JavaScript显示日期+3个月
- 如何将相同的日期第一个文本框设置为第二个文本框,当计数器字段
- 当前日期两个时间之间的时间