如何使用 PHP 的 date ()函数获取 UTC/GMT +/-时间戳
date("Y-m-d H:i:s", time());
我将获得 Unix 时间戳; 但是我需要基于本地时间获得字符串 GMT/UTC +/-0400或 GMT/UTC +/-1000的 UTC/GMT 时间戳。
$time = time(); $check = $time+date("Z",$time); echo strftime("%B %d, %Y @ %H:%M:%S UTC", $check);
使用 gmdate总是返回一个 GMT 日期。语法与 date相同。
gmdate
date
除了调用 gmdate之外,您还可以将这段代码放在其余代码之前:
<?php date_default_timezone_set("UTC"); ?>
这将使其余与日期/时间相关的调用使用 GMT/UTC 时区。
可以使用不带参数的 Gmmktime函数来获取当前的 UTC 时间戳:
$time = gmmktime(); echo date("Y-m-d H:i:s", $time);
Gmmktime 只有在服务器时间使用 UTC 时才能工作。例如,我的服务器设置为 US/Pacific。上面列出的功能回声太平洋时间。
一个简单的 Gmdate () 就足够了
<?php print gmdate("Y-m-d\TH:i:s\Z");
作为 前情提要,从 PHP 5.2.0开始,您可以使用 DateTime类并通过 DateTimeZone实例指定 UTC 时区。
DateTime
DateTimeZone
DateTime_ _ construction ()文档建议在创建 DateTime 实例并指定时区以获取当前时间时,将“ now”作为第一个参数传递。
$date_utc = new \DateTime("now", new \DateTimeZone("UTC")); echo $date_utc->format(\DateTime::RFC850); # Saturday, 18-Apr-15 03:23:46 UTC
你可以用以下方法得到世界协调时:
date_default_timezone_set('Asia/Calcutta'); $current_date = date("Y/m/d g:i A"); $ist_date = DateTime::createFromFormat( '"Y/m/d g:i A"', $current_date, new DateTimeZone('Asia/Calcutta') ); $utc_date = clone $ist_date; $utc_date->setTimeZone(new DateTimeZone('UTC')); echo 'UTC: ' . $utc_date->format('Y-m-d g:i A');
/** * Converts a local Unix timestamp to GMT * * @param int Unix timestamp * @return int */ function local_to_gmt($time = '') { if ($time === '') { $time = time(); } return mktime( gmdate('G', $time), gmdate('i', $time), gmdate('s', $time), gmdate('n', $time), gmdate('j', $time), gmdate('Y', $time) ); }
date("Y-m-d H:i:s", time() - date("Z"))
字符串 GMT/UTC +/-0400或基于本地计时的 GMT/UTC +/-1000
您的自定义 格式只是缺少 O给你的时区偏移从本地时间。
O
与格林尼治时间(GMT)的小时差异例如: + 0200
date_default_timezone_set('America/La_Paz'); echo date('Y-m-d H:i:s O');
2018-01-1212:10:11 -0400
然而,为了最大限度地实现可移植性/互操作性,我建议使用 ISO8601日期格式 c
c
date_default_timezone_set('America/La_Paz'); echo date('c');
2018-01-12 T12:10:11-04:00
date_default_timezone_set('Australia/Brisbane'); echo date('c');
2018年01月13日02:10:11 + 10:00
也可以使用 gmdate,时区偏移量字符串总是 +00:00
+00:00
date_default_timezone_set('America/La_Paz'); echo gmdate('c');
2018-01-12 T16:10:11 + 00:00
date_default_timezone_set('Australia/Brisbane'); echo gmdate('c');
获取世界协调时日期
gmdate("Y-m-d H:i:s");
获取 UTC 时间戳
time();
即使代码中有 date_default_timezone_set,结果也不会有什么不同。
date_default_timezone_set
下面查找 PHP 代码以获取当前的 UTC (协调世界时)时间
<?php // Prints the day echo gmdate("l") . "<br>"; // Prints the day, date, month, year, time, AM or PM echo gmdate("l jS \of F Y h:i:s A"); ?>
您希望使用 gmdate 方法来获取 GMT 日期。
Gmdate 日期格式类似于 date ()方法中的格式。
$code->created_at->setTimezone('UTC')
这里是 $code-> create _ at = Asia/Dhaka Time.