1

昨天我问了另一个问题来计算时间。

现在我意识到,在我的项目中使用第二个表是没有意义的,因为我的第一个表中已经给出了所有必要的东西。因此,目前我使用两个表,在其中插入两个时间戳:

$time = "INSERT INTO table2 ( a, b, c) VALUES (NOW(),NOW() + INTERVAL 14 DAY,(unix_timestamp(NOW()+ INTERVAL 14 DAY)) - unix_timestamp(NOW()))";

就像我已经说过的那样,这可能会容易得多,并且无需第二张桌子就可以达到相同的结果。现在我的问题是,这是我第一次在 php 中使用 timefunctions。有很多不同的功能我不太了解。

我认为要解决我的问题,我可以使用类似的东西:

$row = fetch_assoc()
$old_timestamp = $row->b;

$actual_time = mktime(); //which makes an actual timestamp
$seconds = '1209600'; //which is exactly the timeperiod of 14 days
$added = $old_timestamp + $seconds; //which adds the seconds to the old timestamp and should be the same as NOW() + INTERVAL 14 DAY from the VALUE of the query
$date_to_check = $added - $actual_time;
   if $date_to_check <= 0 { 
     do something }

这可能吗?如果有人可以提供帮助,我将不胜感激。多谢。

更新

对于所有想知道我的想法的人。这是实际方式的代码:

$time_check = $db->query("SELECT (B <= NOW()) AS var FROM table2 WHERE x='$x'");         
            while ($row = $time_check->fetch_object()){ 
                if (($row->var != 0) && ($var1 === '0')){
                        $update_status = $db->query("UPDATE table1 SET var1='1' WHERE x='$x'");{
                            $delete_timecount = $db->query("DELETE FROM table2 WHERE x='$x'");
                        }
                }
            }

我想在没有第二张桌子的情况下完成同样的结果。

4

1 回答 1

1

我真的不明白你想做什么。您似乎正试图识别某人注册后 14 天的时间以便做某事。

if (time() > $old_timestamp + 1209600) {
    // It's been 14 days
    // Do something
}

我使用time,它只是返回当前时间。你明白什么是时间戳吗?

于 2012-04-04T21:06:56.693 回答