【问题标题】:Add a 1-hour expiration to the current time/date为当前时间/日期添加 1 小时到期
【发布时间】:2011-08-18 16:02:19
【问题描述】:
//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

您好,我的预订代码已过期。我的问题是,如果客户在 23:30 进行预订并且预订将在 00:30(1 小时)到期,我制作了以下代码:

$currentdate = date("F j, Y, G:i");  
$onehour = date("G") + 1;
$expire = date("F j, Y, $onehour:i");

$onehour 必须递增,但问题是 23:30 的保留必须在 24:30 到期。但是在增加 $onehour 之后,23:30 会变成 24:40。由于凌晨 12 点的军事时间是 00:00 而不是 24:00,因此我的程序无法读取。任何人都可以对我的问题提出建议吗?谢谢。对不起,我厌倦了懒惰的英语

【问题讨论】:

  • 我希望您意识到这些更新查询会更改表中的每一行,而不仅仅是您选择的那一行。
  • 好的,非常感谢。我知道这一点。 :)

标签: php


【解决方案1】:
$expire = date("F j, Y, H:i", strtotime('+1 hour'));

【讨论】:

  • 嗨,你能解释一下 strtotime() 函数是什么吗?你发布的那个和这个有什么区别: $onehour = (date("G") + 1) % 24;
  • @glove:要了解有关strtotime 的更多信息,请查看文档:php.net/manual/en/function.strtotime.php
  • @glove 如果您刚刚修改 $onehour 并将 24:40 调整为 00:40,那么您的新到期时间将是“今天上午 12:40”而不是“明天上午 12:40” '...您需要将整个日期向前移动 1 小时,而不仅仅是小时部分。 strtotime('+1 hour') 返回当前时间加上一小时的 UNIX 时间戳,然后 date 格式化该时间戳。
【解决方案2】:
$expire = date("F j, Y, H:i", time()+3600); // 3600 sec in hour

【讨论】:

    【解决方案3】:
    $one_hour_from_now = strtotime('+1 hour');
    

    所以,你只需要:

    $expire = date('F j, Y, G:i', strtotime('+1 hour'));
    

    【讨论】:

      【解决方案4】:

      您为什么不检查当前时间是否为 23 ?类似的东西(虽然我不确定三元运算符的 PHP 语法):

      $onehour = date("G) > 22 ? 0 : date("G) + 1;
      

      那么你也想改变当前日期,并检查你是否改变了年份。

      【讨论】:

        【解决方案5】:

        试试看:

        $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/>";
        

        【讨论】:

          猜你喜欢
          • 2020-02-26
          • 2017-10-28
          • 1970-01-01
          • 2019-09-18
          • 1970-01-01
          • 2017-12-12
          • 1970-01-01
          • 2017-01-16
          • 2014-01-15
          相关资源
          最近更新 更多