2013-02-19 43 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)