2012-04-04 142 views
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 } 

這可能嗎?如果有人能夠提供幫助,我將不勝感激。非常感謝。

UPDATE

大家誰喜歡知道我的想法。這裏是實際的代碼:

$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'"); 
         } 
       } 
      } 

我想完成沒有第二個表的相同結果。

+1

我不清楚你想完成什麼。 – 2012-04-04 20:56:33

+0

我想更改一個設置後,註冊和14天的時間 – bonny 2012-04-04 21:01:41

回答

1

我真的不明白你在做什麼。看起來您正試圖識別在某人註冊後14天過去以便做某件事情。

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

我用time,它只是返回當前時間。你知道timestamp是什麼嗎?

+0

我更新了我的問題,但我認爲這可能是解決方案。 – bonny 2012-04-04 21:17:41

+0

這似乎是錯誤的。即使在14天沒有過去的情況下也會執行更新。 – bonny 2012-04-04 21:36:59

+0

@bonny固定,現在試試。我想我讓我的操作員倒過來了。 – 2012-04-05 02:35:17