2013-02-19 64 views
2

我想從GMDATE()中減去180天(用於UTC目的)我有一個PHP腳本。我剛剛看過,但幾乎沒有人使用gmdate()。Php - 從gmdate()中扣除日期date

這是我有:

$from_date = gmdate("Y-m-d H:i:s"); 

有一個簡單的方法來減去該天的量X,而沒有完全使用不同的功能?或者我應該以另一種方式去做嗎?

回答

4

使用日期時間。更好地處理日期,特別是在處理時區時。

$datetime = new DateTime(null, new DateTimeZone('UTC')); 
$datetime->modify('-180 days'); 
echo $datetime->format('Y-m-d H:i:s'); 

See it in action

參考

+0

無論我的服務器的時區是否以UTC格式標準化? – TheCarver 2013-02-19 02:41:57

+1

我更新了我的代碼,以確保始終如此,而不會影響其他DateTime代碼。 – 2013-02-19 02:46:35

1

在UTC格式化應該像;

$timezone = new DateTimeZone('UTC'); 
$datetime = new DateTime('NOW', $timezone); 
$datetime->modify('-180 days'); 
echo $datetime->format('Y-m-d H:i:s'); 

日期時間:PHP DateTime class

public __construct ([ string $time = "now" [, DateTimeZone $timezone = NULL ]])

時區:PHP DateTimeZone class

public __construct (string $timezone)