2011-11-21 20 views
7

我正在使用下面的代碼將通用時間代碼轉換爲更友好一些的用戶。

$meeting_time = date('g:i a', strtotime($time_date_data)); 

但現在我需要從meeting_time減去6小時。我應該在上面的代碼之後執行它,還是可以將它應用到相同的日期函數中?

喜歡的東西:

$meeting_time = date('g:i a' - 6, strtotime($time_date_data)); 

回答

18
$meeting_time = date('g:i a', strtotime($time_date_data) - 60 * 60 * 6); 

字符串到時間(的strtotime)返回一個以秒爲單位(自Epoch起)的Unix時間戳,所以y ou可以簡單地減去21600秒,然後再將其轉換回指定的日期格式。

+0

感謝您的解釋。 +1檢查。 – Denoteone

6

試試這個:

// 6 hours, 3600 seconds in an hour 
$meeting_time = date('g:i a', strtotime($time_date_data) - 6 * 3600); 
+0

感謝+1的幫助 – Denoteone

+0

這個答案是更精確對我的時間計算。謝謝你mc10。 –

2

你應該能夠做到這一點:

$meeting_time = date('g:i a', strtotime($time_date_data)); 
date_add($meeting_time, - date_interval_create_from_date_string('6 hours')); 
5

另一種方法:

$meeting_time = date('g:i a', strtotime('-6 hours', strtotime($time_date_data))); 
1

OO PHP的方式:

$date = new DateTime(); // current time 
echo 'Current: '. $date->format('Y-m-d H:i:s') . "\n"; 
$date->sub(new DateInterval('PT3H55M10S')); 
echo $date->format('Y-m-d H:i:s') . "\n"; 

對於sustract 6個小時:

$date = new DateTime('2017-01-20'); // pass $time_date_data to here 
$date->sub(new DateInterval('PT6H'));