Php 获取表单$\u发布日期与新日期之间的差异

Php 获取表单$\u发布日期与新日期之间的差异,php,validation,datetime,post,spam-prevention,Php,Validation,Datetime,Post,Spam Prevention,我想得到$\u发布时间和提交后在页面内生成的时间之间的差异 我想做一个if语句,如果两次之间的差值小于5秒,那么。。。否则 正在使用php dateH:i:s;正确的功能 生成时间 <?php date = date("H:i:s"); ?> 将获取的时间戳转换为datetime对象 $timeStart = new DateTime($timeStart); $timeEnd = new DateTime($timeEnd); 编辑:修复了清晨编码大脑功能不正常的问题。获取时间

我想得到$\u发布时间和提交后在页面内生成的时间之间的差异

我想做一个if语句,如果两次之间的差值小于5秒,那么。。。否则

正在使用php dateH:i:s;正确的功能

生成时间

<?php date = date("H:i:s"); ?>

将获取的时间戳转换为datetime对象

$timeStart = new DateTime($timeStart);
$timeEnd = new DateTime($timeEnd);

编辑:修复了清晨编码大脑功能不正常的问题。

获取时间戳并使用strotime将它们转换为unix时间戳,然后将它们相互减去


//这只能与时间戳一起使用吗?不但是,由于diff是DateTime类的一个方法,所以只能从该类的对象调用它。日期函数的结果是一个字符串!!!为什么不首先在表单中输入一个unix时间戳值呢?如果你只使用H:i:s,我可以在明天或下周的这个时候再次发送相同的表格,这可能不是你想要的…这会有什么帮助$timeStart仍然是一个。。。
//could the problem be this is a string within the $_POST
$timestart = $_POST['tstmp'];

$timeend = date("H:i:s");

//can this only be used with timestamp?
$interval = $timestart->diff($timeend);
$timeStart = new DateTime($timeStart);
$timeEnd = new DateTime($timeEnd);
$timestart = $_POST['tstmp'];
$timeend =  date("H:i:s");

$timestart = strtotime($timestart);
$timeend   = strtotime($timeend);

if(($timeend - $timestart) > 5){
    echo 'TIME IS GREATER THAN 5 SECONDS';
}