Php 将1小时到期时间添加到当前时间/日期
嗨,我这里的预订代码过期了。我的问题是,如果客户在23:30进行预订,并且预订将在00:30(1小时)过期,我会生成以下代码:Php 将1小时到期时间添加到当前时间/日期,php,Php,嗨,我这里的预订代码过期了。我的问题是,如果客户在23:30进行预订,并且预订将在00:30(1小时)过期,我会生成以下代码: //expiration $datetoday = date("F j, Y, G:i"); $expquery = mysql_query("SELECT a_expire FROM regform_admin WHERE status = 'Pending for payment'"); $row = mysql_fetch_array($expquery);
//expiration
$datetoday = date("F j, Y, G:i");
$expquery = mysql_query("SELECT a_expire FROM regform_admin WHERE status = 'Pending for payment'");
$row = mysql_fetch_array($expquery);
$expirydate = $row['a_expire'];
echo "$datetoday";
echo "$expirydate";
if ($datetoday == $expirydate) {
$expirequery = mysql_query("UPDATE regform_admin SET status = 'Expired' WHERE status = 'Pending'");
$expirequery2 = mysql_query("UPDATE regform SET status = 'Expired' WHERE status = 'Pending'");
}
//end expiration
$onehour
必须递增,但问题是23:30的预订必须在24:30过期。但是在增加$1小时后,23:30的结果变成了24:40。我的程序无法读取,因为军事时间上午12点是00:00,而不是24:00。有人能对我的问题提出建议吗?谢谢对不起,我懒得说英语,我已经厌倦了思考
$currentdate = date("F j, Y, G:i");
$onehour = date("G") + 1;
$expire = date("F j, Y, $onehour:i");
因此,您只需要:
$one_hour_from_now = strtotime('+1 hour');
你为什么不检查一下现在的小时数是不是23?比如(我不确定三元运算符的PHP语法): 然后您还需要更改当前日期,并检查是否更改了年份。试试:
$onehour = date("G) > 22 ? 0 : date("G) + 1;
$t=strotime('2015-10-27 11:19:04');
$d=日期($Y-m-d H:i:s',$t);
echo$d。“
”;
$t=$t+3600;
$d=日期($Y-m-d H:i:s',$t);
echo$d。“
”;
我希望您意识到这些更新查询将更改表中的每一行,而不仅仅是您选择的行。是的,非常感谢。我知道这一点。:)嗨,你能给我解释一下strotime()函数是什么吗?你贴的和这张有什么区别:$onehour=(date(“G”)+1)%24@手套:要了解更多关于《标准时间》,请查看文档:@glood如果您刚刚修改了《标准时间》$onehour,并将24:40调整为00:40,您的新过期时间将是“今天12:40”,而不是“明天12:40”。。。您需要将整个日期向前移动1小时,而不仅仅是时间部分strotime(“+1小时”)
返回当前时间加1小时的UNIX时间戳,然后date
格式化该时间戳。
$expire = date("F j, Y, H:i", strtotime('+1 hour'));
$expire = date("F j, Y, H:i", time()+3600); // 3600 sec in hour
$onehour = date("G) > 22 ? 0 : date("G) + 1;
$t = strtotime('2015-10-27 11:19:04');
$d = date('Y-m-d H:i:s', $t );
echo $d . "<br/>";
$t = $t + 3600;
$d = date('Y-m-d H:i:s', $t );
echo $d . "<br/>";