Rob*_*rai 112 php datetime utc
如何使用PHP的date()函数获取UTC/GMT +/-时间戳?例如,如果我尝试
date("Y-m-d H:i:s", time());
Run Code Online (Sandbox Code Playgroud)
我会得到Unix时间戳; 但我需要根据当地时间获得UTC/GMT时间戳,字符串GMT/UTC +/- 0400或GMT/UTC +/- 1000.
nik*_*org 101
使用gmdate
将始终返回GMT日期.语法与for相同date
.
Sha*_*ran 87
一个简单的gmdate()就足够了
<?php
print gmdate("Y-m-d\TH:i:s\Z");
Run Code Online (Sandbox Code Playgroud)
Jes*_*edc 43
正如先前在这里找到答案,因为PHP 5.2.0可以使用DateTime
类与实例指定UTC时区DateTimeZone
.
DateTime __construct()文档建议在创建DateTime实例时指定"now"作为第一个参数,并指定时区来获取当前时间.
$date_utc = new \DateTime("now", new \DateTimeZone("UTC"));
echo $date_utc->format(\DateTime::RFC850); # Saturday, 18-Apr-15 03:23:46 UTC
Run Code Online (Sandbox Code Playgroud)
Sud*_*oti 34
$time = time();
$check = $time+date("Z",$time);
echo strftime("%B %d, %Y @ %H:%M:%S UTC", $check);
Run Code Online (Sandbox Code Playgroud)
anu*_*ava 12
除了调用之外,gmdate
您还可以将此代码放在其余代码之前:
<?php
date_default_timezone_set("UTC");
?>
Run Code Online (Sandbox Code Playgroud)
这将使其余的与日期/时间相关的呼叫使用GMT/UTC时区.
Ste*_*rya 12
获取UTC日期
gmdate("Y-m-d H:i:s");
Run Code Online (Sandbox Code Playgroud)
获取UTC时间戳
time();
Run Code Online (Sandbox Code Playgroud)
即使您date_default_timezone_set
的代码也没有不同。
您可以使用不带参数的gmmktime函数来获取当前UTC时间戳:
$time = gmmktime();
echo date("Y-m-d H:i:s", $time);
Run Code Online (Sandbox Code Playgroud)
gmmktime仅在您的服务器时间使用UTC时才有效.例如,我的服务器设置为US/Pacific.上面列出的函数回到了太平洋时间.
根据本地时间,使用字符串 GMT/UTC +/-0400或 GMT/UTC +/-1000
您的自定义格式只是缺少O
为您提供与本地时间的时区偏移量。
与格林威治时间 (GMT) 的时差(以小时为单位)示例:+0200
date_default_timezone_set('America/La_Paz');
echo date('Y-m-d H:i:s O');
Run Code Online (Sandbox Code Playgroud)
2018-01-12 12:10:11-0400
但是,为了最大限度地提高可移植性/互操作性,我建议使用ISO8601日期格式c
date_default_timezone_set('America/La_Paz');
echo date('c');
Run Code Online (Sandbox Code Playgroud)
2018-01-12T12:10:11-04:00
date_default_timezone_set('Australia/Brisbane');
echo date('c');
Run Code Online (Sandbox Code Playgroud)
2018-01-13T02:10:11+10:00
您也可以使用gmdate
,时区偏移字符串将始终是+00:00
date_default_timezone_set('America/La_Paz');
echo gmdate('c');
Run Code Online (Sandbox Code Playgroud)
2018-01-12T16:10:11+00:00
date_default_timezone_set('Australia/Brisbane');
echo gmdate('c');
Run Code Online (Sandbox Code Playgroud)
2018-01-12T16:10:11+00:00
小智 5
您想使用 gmdate 方法来获取 GMT 日期。
gmdate("Y-m-d H:i:s");
Run Code Online (Sandbox Code Playgroud)
gmdate 日期格式类似于 date() 方法中的格式。