get UTC time in PHP
如何使用php的date()函数获取UTC/GMT+/-时间戳?例如,如果我尝试
我将得到Unix时间戳;但是我需要得到基于本地时间的字符串gmt/utc+/-0400或gmt/utc+/-1000的UTC/gmt时间戳。
使用
一个简单的gmdate()就足够了
1 2 |
。
如前所述,由于php 5.2.0,您可以使用
datetime uuconstruct()文档建议在创建datetime实例并指定时区以获取当前时间时,将"now"作为第一个参数传递。
1 2 3 | $date_utc = new \DateTime("now", new \DateTimeZone("UTC")); echo $date_utc->format(\DateTime::RFC850); # Saturday, 18-Apr-15 03:23:46 UTC |
1 2 3 |
除了调用
1 2 3 |
号
这将使您的其余日期/时间相关呼叫使用GMT/UTC时区。
获取UTC日期
1 |
号
获取UTC时间戳
1 |
号
即使代码上有
可以使用不带参数的gmmktime函数获取当前的UTC时间戳:
只有当服务器时间使用UTC时,gmmktime才能工作。例如,我的服务器设置为US/Pacific。上面列出的函数是回太平洋时间。
with string GMT/UTC +/-0400 or GMT/UTC +/-1000 based on local timings
号
您的自定义格式只是缺少
Difference to Greenwich time (GMT) in hours Example: +0200
号
1 2 |
。
2018-01-12 12:10:11 -0400
号
但是,为了最大限度地提高可移植性/互操作性,我建议使用ISO8601日期格式
1 2 |
2018-01-12T12:10:11-04:00
号
1 2 |
。
2018-01-13T02:10:11+10:00
号
您也可以使用
1 2 |
号
2018-01-12T16:10:11+00:00
号
1 2 |
号
2018-01-12T16:10:11+00:00
号
您可以使用以下命令获取UTC时间:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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'); |
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | /** * 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) ); } |
。