我想知道是否可以在不依赖服务器时间的情况下获得全球UTC时间(或者在我的PC时间内)。
至于现在,如果我这样做
date('H:i:s')
我得到我的电脑时间(唯一的变化是我在应用程序中设置的GMT + 3或GMT + 2)所以如果我将我的电脑时间改为2小时23分钟,那么{{1}功能结果也将是2小时23分钟。
无论我自己的PC手表如何,总是可以拉动全球UTC时间吗?
答案 0 :(得分:3)
@Cheery在问题评论中提供了一个很好的链接,但截至2014年的外部 - 使用现代工具是有意义的:
$dt = new DateTime('now', new DateTimeZone('UTC'));
echo $dt->format('d-m-Y H:i:s');
回答你唯一的问题:
无论我自己的PC手表如何,总是可以拉动全球UTC时间吗?
不,php希望你的本地时钟+ OS / php时区设置正确。
参考文献:
答案 1 :(得分:0)
您可以使用Web服务解决问题,但是您必须将Unix时间作为参数传递。
例如,使用World Weather Online API(没有任何验证;您需要注册并使用您的API密钥):
<?php
$loc = 'utc';
$key = 'xkq544hkar4m69qujdgujn7w';
$url = 'http://api.worldweatheronline.com/free/v1/tz.ashx?format=json&'
. http_build_query(array('key' => $key, 'q' => $loc,));
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER , 1);
$json_response = curl_exec($ch);
curl_close($ch);
$response = json_decode($json_response);
$tz = $response->data->time_zone[0]->localtime;
$timestamp = strtotime($tz);
var_dump($tz);
var_dump( date('H:i', $timestamp) );
此服务不会检索秒数(这只是一个示例;您可以选择其他服务),但您可以自行创建服务:
<?php
date_default_timezone_set('UTC');
header('Content-Type: application/json');
echo json_encode(array('timestamp' => time()));
另一方面,您可以使用网络时间协议: