gpt4 book ai didi

php - 如果提交后已经过了一个小时则更新记录

转载 作者:行者123 更新时间:2023-11-29 23:38:44 25 4
gpt4 key购买 nike

我知道有很多这样的问题,但我无法让它们适用于我的情况,我在处理时差方面遇到了麻烦。

我正在使用 Code Igniter,我有一个数据库,其中包含多行“作业”,其中包含各种字段,其中一个是 subscribed_time(TIME 类型),它设置为 date(' H:i:s', time()) 在插入时,另一个 service_response(of type TIME)手动设置为“02:00:00 " 插入时。

我正在尝试编写一个函数,在运行时检查自添加帖子以来是否已经过了一个小时,但我无法理解实现此目的的最佳方法。

下面是我的尝试,它将两个字段中的所有字符串转换为 unix 时间戳,如果提交的时间大于现在的时间 + 1 小时 (service_response/2),则回显“作业”

function updateJobTimes()
{
$this->load->model('job_model');

$oj = $this->job_model->getAllTodaysOpenJobs();
//var_dump($oj);
foreach($oj as $job)
{
$timesubmitted = strtotime($job->submitted_time);
$now = strtotime(date('H:i:s', time()));
//responsetime = now + 1 hour;
$responsetime = strtotime("+1 hours");

echo "Submitted_time =" . $job->submitted_time. "<br>\r\n";
echo "strtotime(Submitted_time) =". $timesubmitted. "<br>\r\n";
echo "Service_reponse =" . $job->service_response. "<br>\r\n";
echo "strtotime(Serivce_response) =" .$responsetime. "<br>\r\n";
echo "Time now =".$now. "<br>";
echo "response time(now +1hour) =". date('H:i:s', $responsetime) ."<br>";
echo "-----just a separator---------------------------------- <br>";




//this should show the last job "job#2105" which is the last iteration in the picture below
if($timesubmitted > $responsetime)
{
$difference = $res - $timesubmitted;
echo "<p class='well'>Job #".$job->reference. "</p>\r\n";
}
}
}

但它永远不会或总是满足条件。

我真的很茫然,已经阅读了谷歌中出现的每个问题,但它们要么基于同一字段中的时间和日期,要么想要返回用户可读的字符串,例如“x 分钟前”,或者它们使用 sql select 语句,但我已经有一个仅从当天(上面)撤回作业的语句,我只想列出这些作业(如果它们已提交超过一个小时)。

抱歉,如果问题太长、太愚蠢或没有提供足够的信息(或太多),我问这个问题是因为我迷路了。

编辑:在@ChrisG的帮助下更新了方法A,并添加了一张图片来显示问题(最后一个作业(#2105)不应该在那里)

编辑2:再次更新方法并更新图片以显示正在检查的两个变量。

**编辑3:看着我的代码,我有一种感觉,条件永远不会被满足,因为提交的时间永远不会大于现在的时间+1小时,因为现在总是会改变......我觉得只是写出来很愚蠢,但我似乎无法正确地表达正确的 if 语句,我现在感觉比以前更接近,但仍然迷失了。也许响应时间应该是提交时间+一小时? **

感谢您的阅读

变量的 var 转储

enter image description here

最佳答案

我明白了。

function updateJobTimes()
{
$this->load->model('job_model');

$oj = $this->job_model->getAllTodaysOpenJobs();
//var_dump($oj);
foreach($oj as $job)
{
$timesubmitted = strtotime($job->submitted_time);
$now = strtotime(date('H:i:s', time()));

$responsetime = strtotime("+1 hours", $timesubmitted);

// echo "Submitted_time =" . $job->submitted_time. "<br>\r\n";
// echo "strtotime(Submitted_time) =". $timesubmitted. "<br>\r\n";
// echo "strtotime(Serivce_response) =" .$responsetime. "<br>\r\n";
// echo "Time now =".$now. "<br>";
// echo "response time(now +1hour) =". date('H:i:s', $responsetime) ."<br>";
// echo "-----just a separator---------------------------------- <br>";





if($now > $responsetime)
{
//$difference = $res - $timesubmitted;
echo "<p class='well'>Job #".$job->reference. " was submitted at ".date('H:i:s',$timesubmitted). " and its response time is " .date('H:i:s',$responsetime). " and it is now ".date('H:i:s',time()). "</p>\r\n";
}
}
}

基本上我正在做 if(提交的时间大于提交的时间 + 1hour) 这永远是正确的,我应该做的是 if(**thetimenow**大于 time_subscribed + 1 小时)//在我的例子中应该返回除 1 之外的所有结果,它确实如此,希望它能帮助像我一样困惑的人。

不太确定接受自己的答案作为解决方案的礼仪,所以我不会,但这对我来说确实有用,坦率地说可能对大多数人来说已经有意义,我只是陷入了这个问题。

关于php - 如果提交后已经过了一个小时则更新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26287288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com