在PHP中本地化时间 - Kohana

时间:2014-02-12 09:09:23

标签: php kohana kohana-3

我正在使用php和kohana framework.Below是我用来显示日期和时间的PHP代码。

$message_date = date('Y-m-d', strtotime($message->last_modified_date));
 $current_date = date('Y-m-d');
 $yesterday = date("Y-m-d", strtotime("yesterday"));
 if ($message_date == $current_date):
 $date = "Today at " . date('h:i A', strtotime($message->last_modified_date));
 elseif ($message_date == $yesterday):
 $date = "Yesterday";
 else:
 $date = date("M d, Y", strtotime($message->last_modified_date));
 endif; 



<span class="msg-date"><?= $date; ?></span>

更新 我自己的尝试解决方案

$tz = new DateTimeZone('America/Chicago');
$message_date = new DateTime($message_date); 
$message_date->setTimeZone($tz);
$messagedate = $message_date->format('Y-m-d H:i:s');//converted time

我需要本地化时间取决于用户使用的本地机器。如果用户从“印度”查看我的页面,时间应该调整与印度时间,如果在美国或英国查看同一页面,时间应该与美国或英国进行调整。

我怎么能在kohana或php中做到这一点。

2 个答案:

答案 0 :(得分:0)

你不能做这个服务器端(即在PHP中)。服务器只能从客户端读取有限数据,不包括区域设置时区。

但是,您可以使用JS和PHP的混合来执行此操作,例如使用设置会话的ajax调用 - 与解释in this question

相同

答案 1 :(得分:0)

相信在PHP中,你只能在服务器端使用时间。如果您想在应用程序的客户端获取时间/数据,则应使用JavaScript。

var currentTime = new Date()
var hours = currentTime.getHours()
var minutes = currentTime.getMinutes()

if (minutes < 10)
minutes = "0" + minutes

document.write("<b>" + hours + ":" + minutes + " " + "</b>")

在这个帖子中,有人也在努力解决这个问题。

How can I get the user's local time instead of the server's time?

如前所述,您可以混合使用JavaScript和PHP。

相关问题