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


date() function in PHP and its 2nd parameter

PHP date(( 文档说:

时间戳 可选的时间戳参数是一个整数 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.在文档中它说:

可选的时间戳参数是一个整数 Unix 时间戳,它 如果未给出时间戳,则默认为当前本地时间

但如果它被给予,它应该默认为给予的,对吗?

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()])被视为date('F j, Y, H:i - e', time());,因为没有第二个参数。要获得UTC时间,我建议您使用" echo gmdate('F j, Y, H:i - e'); //will output March 30, 2016, 16:22 - UTC

是的,同意@KBJ答案,或者,您可以设置您想要获取时间然后获取时间的任何地方(在您的情况下为亚洲(的时区。
date_default_timezone_set("亚洲/加尔各答"(;
$date= 日期('m-d-Y'( ;