我正在使用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中做到这一点。
答案 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。