协慌网

登录 贡献 社区

如何在 PHP 中获取当前日期和时间?

哪个 PHP 函数可以返回当前日期 / 时间?

答案

时间将通过您的服务器时间。一个简单的解决方法是在date_default_timezone_set date()time()函数之前使用date_default_timezone_set手动设置时区。

我在墨尔本, 澳大利亚所以我有这样的事情:

date_default_timezone_set('Australia/Melbourne');

或者另一个例子是洛杉矶 - 美国

date_default_timezone_set('America/Los_Angeles');

您还可以通过以下方式查看服务器当前所在的时区:

date_default_timezone_get();

所以类似于:

$timezone = date_default_timezone_get();
echo "The current server timezone is: " . $timezone;

所以你的问题的简短答案是:

// Change the line below to your timezone!
date_default_timezone_set('Australia/Melbourne');
$date = date('m/d/Y h:i:s a', time());

然后所有的时间都会到你刚设置的时区:)

// Simply:
$date = date('Y-m-d H:i:s');

// Or:
$date = date('Y/m/d H:i:s');

// This would return the date in the following formats respectively:
$date = '2012-03-06 17:33:07';
// Or
$date = '2012/03/06 17:33:07';

/** 
 * This time is based on the default server time zone.
 * If you want the date in a different time zone,
 * say if you come from Nairobi, Kenya like I do, you can set
 * the time zone to Nairobi as shown below.
 */

date_default_timezone_set('Africa/Nairobi');

// Then call the date functions
$date = date('Y-m-d H:i:s');
// Or
$date = date('Y/m/d H:i:s');

// date_default_timezone_set() function is however
// supported by PHP version 5.1.0 or above.

有关时区参考,请参阅支持的时区列表

从 PHP 5.2.0您也可以使用OOPDateTime() (当然如果您更喜欢 OOP):

$now = new DateTime();
echo $now->format('Y-m-d H:i:s');    // MySQL datetime format
echo $now->getTimestamp();           // Unix Timestamp -- Since PHP 5.3

并指定timezone

$now = new DateTime(null, new DateTimeZone('America/New_York'));
$now->setTimezone(new DateTimeZone('Europe/London'));    // Another way
echo $now->getTimezone();