2013-02-09 46 views
0

我正在創建一個應用程序,我正在存儲用戶的詳細信息。其中一個領域是創建時間和用戶希望他的帳戶激活的天數。 我正在使用date('c')created表字段中存儲時間。現在,如果用戶選擇他希望其賬戶僅在一天內有效,那麼我怎樣才能將這一天添加到當前的date('c')中,並將其存儲到我的下一個表字段valid_till中。使php的時間,在今天的時間添加一天

後來我打算檢查當前date('c')是否在createdvalid_tll字段之間,那麼這個用戶帳號是活動的,否則這個帳號就會被刪除。

我想使用sql觸發器來刪除帳戶。

回答

2

您可以使用PHP的strtotime()

$valid_till = date('c', strtotime('+1 day')); 

你可以閱讀更多有關可能的格式在PHP手冊Supported Date and Time Formats部分。

+0

如何刪除該行使用觸發器,任何想法 – prakashchhetri 2013-02-09 14:37:19

+0

SQL觸發器只適用於修改時應用於表。他們不在一段時間內工作。我建議你定期運行一個垃圾收集腳本,如果'date('c')> = $ valid_till'只是刪除帳戶。 – 2013-02-09 14:41:16

1

爲什麼不使用SQL,取決於你使用的引擎,你可以使用像create = NOW(),過期NOW()+間隔number_of_days,sql引擎處理日期爲你,你不需要去創建php時間的麻煩和與他們合作..

1

這是一個基於SQL的解決方案。您可以將其轉換爲更新或插入。

SELECT 
    `created`, 
    CONCAT(
     DATE_FORMAT(
      DATE_ADD(SUBSTRING(`created`,1,10), INTERVAL 1 DAY), '%Y-%m-%d' 
     ), 
     RIGHT(`created`,15) 
    ) AS 'valid_till' 
FROM `some_table` 

但我會建議使用SQL UTC_TIMESTAMP()而不是PHP日期函數並TIMESTAMP數據類型而不是(VAR)CHAR一排你做的SQL一邊更容易計算。