Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将1小时到期时间添加到当前时间/日期_Php - Fatal编程技术网

Php 将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);

嗨,我这里的预订代码过期了。我的问题是,如果客户在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); 
$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/>";