2014-01-12 73 views
1

PHP中是否可以將DateTime()更改爲自定義時間差。就像添加它20分鐘,每次我打電話new DateTime()我會得到額外的20分鐘到當前日期。在PHP中更改日期時間()偏移量

我想到了__construct(),但沒有看到如何解決它。

我可以使用過程中的作用,但只是好奇,想知道它有可能改變原型new DateTime()

+1

您可以'extend'實現自己的行爲 – Bojangles

+0

創建用戶定義函數的類? – dayuloli

+0

@Bojangles,我該如何擴展課程?你能指出我讀了些什麼嗎? – Rikard

回答

2

是的,這是可能的:

$date = new DateTime(); 
$date->modify("+20 minutes"); //or whatever value you want 

Example online

1

伊利亞羅斯托夫採夫的答覆是一個很好的實現你的目標。或者,您也可以使用DateTime :: add()來使用DateInterval類。就個人而言,我更喜歡那個,因爲你不需要知道字符串是如何看起來像的,而DateInterval在一天中使用像P1d這樣的標準。

我不會使用繼承來獲取DateTime類,包括您希望的行爲。相反,您可以創建一些包含Ilia代碼的工廠(以及其他用於創建對象的代碼)。間隔可以作爲參數添加。您添加的時間間隔,您的20分鐘應該存儲在一個常量中,以防您將來需要更改該時間間隔,同時技術上可以使用超過20分鐘的時間間隔。

+1

你能爲此添加一個例子嗎? – Rikard

+0

我在下面的頁面創建了3個例子: [鏈接](http://3v4l.org/JnGR2) 我不是很喜歡靜態方法,因爲它們很難甚至不能被嘲笑單元測試,但這取決於你的類和方法。 – SenseException