如何获取文章何时通过当前用户的默认时间发布


How Get When A Article Was Posted Via The Default Time From The Current User

在所有问题中,我不知道从哪里开始,这听起来很复杂,如果不是不可能的话,但没有必要放弃,而不问这个很棒的网站;)

,我要做的是检测什么时候发布的东西取决于在哪个国家,例如:

如果在澳大利亚,布里斯班是2014年8月21日下午12:17,在美国,纽约说,例如:今天是2014年8月20日,根据你住的地方,它会准确地告诉你是什么时候发布的。所以它会说它是在8月21日发布的,因为那是发布的时间,如果你在美国,它会说那个时间。(我想让它舒适地环游世界)

我会把默认时区设置为澳大利亚吗?担心这可能有点烦人,因为不是每个人都住在这里

谢谢!

编辑:

找到一些似乎运行良好的代码,这是否足够好?

$timezone = "UTC";
date_default_timezone_set($timezone);
$utc = "Aug 11 2014 02:42:38 AM";
$timezone = "Australia/Perth";
date_default_timezone_set($timezone);
$offset = date('Z', strtotime($utc));
print "LOCAL: " . date('r', strtotime($utc) + $offset) . "'n";

用时区显示时间对您来说很容易。

我假设当你存储一个帖子时你知道日期时间+时区假设它是utc

当用户打开帖子时对于他的ip地址或其他方法,你也知道他的时区那么显示日期如下所示1-用PHP的datetime类设置时区

来自php示例格式('Y-m-d H:i:sP')。"' n";

$date->setTimezone(new DateTimeZone('Pacific/Chatham'));
echo $date->format('Y-m-d H:i:sP') . "'n";

这个问题的一个常见解决方案是将所有内容存储在UTC中。当显示值时,将UTC值传递给浏览器(在API响应或隐藏的HTML字段中),然后使用JavaScript将UTC值加载到Date对象中。

由于JavaScript Date对象在用户的浏览器中运行,因此它可以从UTC转换为用户的本地时区,而无需您知道该时区是什么。

唯一的缺点是在某些情况下它可能是不准确的,如下所述。尽管如此,这通常是一个好方法。