使用strtotime()PHP并恢复通过gmdate()返回相同的日期

时间:2015-09-02 01:23:02

标签: php date datetime

我有一个字符串$StartDate = "2015-09-23"(应该像yyyy-mm-dd)。 比我让$UdtStart= strtotime($StartDate)返回1442980800; 好吧,如果我去这个link它返回“Wed,23 Sep 2015 04:00:00 +0000”。 首先,我们为什么要添加04:00:00?

然后,如果我这样做$ back = gmdate(“Y-m-d H:i:s”,($ UdtStart));我将有“2015-09-26 04:00:00”。

我错过了什么?

$UdtStart=  strtotime($StartDate);
$back=gmdate("Y-m-d H:i:s", ($UdtStart));

1 个答案:

答案 0 :(得分:2)

Wed, 23 Sep 2015 04:00:00 +0000

注意最后是+0000,这意味着时间是UTC。根据{{​​3}}:

  

除非在该参数中指定了时区,否则此函数的每个参数都使用默认时区。

gmdate适用于格林威治标准时间(现在真的应该被称为utcdate),所以你要求的数据与你给出的数据不同。

我愿意在距离UTC四小时的时区内下注您的资金,这就是为什么您会看到这一点。

如果您想要本地时间,请使用date()而不是gmdate()PHP strtotime() doco州:

  

date()函数相同,只是返回的时间是格林威治标准时间(GMT)。