2011-01-21 75 views
3

,我有我的服務器託管選址上PHP5.12.14,和我有一個錯誤,當我從PHP5.3PHP:更換爲DateTime對象

# DateTime::add — Adds an amount of days, months, years, hours, minutes and seconds to a DateTime object 
$date = new DateTime($item_user['mem_updated']); 

# add a day to the object 
$date -> add(new DateInterval('P1D')); 

錯誤,

運行DateTime對象
Fatal error: Call to undefined method DateTime::add() in /homepages/xxx.php on line xx 

因此,我尋找其他解決方案,而不是堅持PHP5.3的DateTime對象。我如何編寫代碼來替換上面的代碼?

基本上我有這樣的日期和時間數據(例如 - 2011-01-21 02:08:39)從MySQL數據庫,我只需要1天或24小時添加到日期/時間,然後將它傳遞到下面的函數,

$time_togo = time_togo($date -> format('Y-m-d H:i:s')); 

謝謝。

+0

你可能會考慮升級PHP如果你有控制的服務器,騷擾那些確實擁有控制權的服務器爲你做,或者尋找新的主機。 – meagar 2011-01-21 21:42:40

+2

是啊我正在尋求一個新的託管。討厭當前的託管公司。過時。糟糕的服務。我不會推薦任何這個糟糕的託管商,這是1&1! – laukok 2011-01-21 22:13:56

回答

2

的strtotime將工作

$timestamp = strtotime($item_user['mem_updated']);  
$time_togo = date("Y-m=d H:i:s", strtotime("+1 Day", $timestamp)); 
1

下面是一個例子:

$date = date('Y-m-d H:i:s'); 

$new_tstamp = strtotime($date.'+1WEEK'); 
$new_date = date('Y-m-d H:i:s', $new_tstamp); 

換句話說,strtotime讓您使用日期表情像+1DAY+1MONTH等。

上述內容適用於日期字符串(例如:2010-01-01)。如果你原來的日期是Unix時間戳,你仍然可以使用strtotime,但有一點不同:

$new_tstamp = strtotime('+1WEEK', $timestamp); 
+0

感謝您的幫助! – laukok 2011-01-21 22:10:24