如何在PHP中获取当地时间?

Ale*_*der 7 php

我想用php获取当地时间.我写了两个不同的版本,但他们都给出了错误的时间

date_default_timezone_set('UTC');
$now = new DateTime();
echo $now->getTimestamp(); 
Run Code Online (Sandbox Code Playgroud)

其他方式

date_default_timezone_set('America/New York');
echo strtotime("now")."<br/>";;
$now = new DateTime();
echo $now->getTimestamp(); 
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,我都会比当地时间早四点四.有没有其他方式来获得当地时间?

N.B*_*.B. 20

DateTime::getTimestamp()返回unix时间戳.该数字始终为UTC.你想要的是根据你的时区格式化日期.

$dt = new DateTime("now", new DateTimeZone('America/New York'));

echo $dt->format('m/d/Y, H:i:s');
Run Code Online (Sandbox Code Playgroud)

或根据您的需要使用不同的日期格式.

此外,您可以使用DateTime库来满足您的所有日期需求.每次要获取日期时都无需更改服务器的默认时区.

  • 您最好的选择是完全忽略当地时间,并在代码中坚持使用UTC时间.如果您需要显示它,可以使用DateTimeZone将其格式化为"人眼".DateTime对象也有 - > diff方法 (2认同)

小智 8

只需使用函数date_default_timezone_set().这是一个例子:

<?php 
date_default_timezone_set("Asia/Dhaka");
echo date('d-m-Y h:i:s A');
?>
Run Code Online (Sandbox Code Playgroud)

希望它会有所帮助,谢谢.