PHP中的date()函数及其第二个参数

时间:2016-03-30 16:36:18

标签: php date datetime

PHP date()文档说:

  

时间戳   可选的timestamp参数是整数Unix时间戳,如果未给出时间戳,则默认为当前本地时间。 换句话说,它默认为time()的值。

我使用位于贝尔格莱德的服务器(php.ini中的时区是"欧洲/贝尔格莱德")目前是UTC + 2:

echo date('F j, Y, H:i - e') // result => March 30, 2016, 18:22 - Europe/Belgrade

现在我想获得UTC时间。如果我们知道time()始终默认为UTC 时间并且在所有服务器上都相同,那么我应该可以这样做以获得UTC时间:

echo date('F j, Y, H:i - e', time()); // result => March 30, 2016, 18:22 - Europe/Belgrade

但结果是一样的。我应该得到March 30, 2016, 16:22 - UTC。在文档中它说:

  

可选的timestamp参数是整数Unix时间戳   如果时间戳不是,则默认为当前本地时间

但是如果给出的话,它应该默认给出的是什么,不是吗?

2 个答案:

答案 0 :(得分:2)

java.sql.SQLException: No suitable driver found for jdbc:sybase:Tds:some.com:5000/db 中,date('F j, Y, H:i - e', time());仍在解析当前服务器时间,第一个代码为time()。因此,基本上,您的代码仍然相同;由于没有第二个参数,March 30, 2016, 18:22 - Europe/Belgrade被视为date('F j, Y, H:i - e' [, $timestamp = time()])。为了获得UTC时间,我建议你使用 date('F j, Y, H:i - e', time());

答案 1 :(得分:1)

是的,同意@KBJ的回答或者,您可以设置时区(在您的情况下为亚洲)您想要时间然后获得时间。
date_default_timezone_set( '亚/加尔各答');
$ date = date('m-d-Y');