如何根据国家时区显示时间
答
您可以为您的脚本创建函数DisplayDate($ datetoconvert)以将时间转换为您的时间 - 并返回新时间。
DisplayDate($xtime) //assuming its a unix timestamp..
{
$mydifferece = 6; // hours
$newtime = $xtime+($mydifference*3600); //
$newtime = date("d-m-Y H:i:s", $newtime);
return $newtime;
}
// HTML
写: '.DisplayDate($ timewritten)';
作用时间为所有用户..
- “会话”表中现在应该有“时区”一栏 - 让用户输入自己的时区,VARCHAR(3)默认没什么
- ,我们应该有时间区域的“选择”选项!
//让显示器的实际使用时间的用户..
//$xtime is database entry to be converted (if any)
//$usertimezone is a selected timezone by user, driven from session (guests) - or users table.. (ie +6, or -7, or +1 and so on..)
DisplayDate($xtime="",$usertimezone="")
{
if(!$xtime) //given time (to be converted) dont exists, okay - lets give some right now time..
{
$xtime = time(); //set time to "right now", unix timestamp
}
//now we have time, lets see if user selected his timezone..
if($usertimezone != "") //someone selected his timezone, time to do the job..
{
//herein (additionally) we should add support for winter and summer time (daylight) - if that zone support that changes.. but im leaving that empty for now..
$xtime = $xtime+($usertimezone*3600); //difference * seconds per hour
}
else
{
//usertimezone not set, user dont care about his time to be displayed correctly, or its just a bot or spider, so do nothing..
}
$xtime = date("j. m, Y. H:i:s", $xtime); //lets just do some cosmetics..
return $xtime;
}
// HTML
//从数据库中 - 即用于显示评论或文章dateCreated会倍..
echo DisplayDate($comment['commentdate'],$session['usertimezone']);
//显示时钟让我们说..
echo DisplayDate('',$session['usertimezone']);
答
以UTC时区存储日期,将用户的时区首选项存储在其配置文件中,然后在其首选时区中显示该用户的日期。
<?php
// assume these preferences came from a database as-is
$userTimezonePreference = 'America/Denver';
$storedDateTimeAsUtc = '2012-04-02 06:15:40';
$dateTime = new DateTime($storedDateTimeAsUtc, new DateTimeZone('UTC'));
echo 'ORIG: ', $dateTime->format(DateTime::RFC2822), PHP_EOL;
$dateTime->setTimezone(new DateTimeZone($userTimezonePreference));
echo 'USER: ', $dateTime->format(DateTime::RFC2822), PHP_EOL;
+0
感谢代表, – 2012-04-02 05:29:17
感谢答案,我得到了点,确定的,如果任何一个在中国访问我的网站,并根据时间差显示只为一个国家可能会再次出现问题,我觉得你得到了点,做我需要为每个国家写出差异?请代表 – 2012-04-02 05:24:49
您必须允许(EVERY)用户访问您的网站以通过“选择”下拉菜单输入其时区。这包括你。我重新编辑了该范围的功能。 – Xfile 2012-04-02 16:28:11
好的,非常感谢 – 2012-04-03 06:42:12