Локализировать время в php - Kohana

Я использую php и kohana framework. Ниже приведен код 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 ответа

Вы не можете сделать это на стороне сервера (т.е. в PHP). Сервер может только читать ограниченные данные от клиента, который не включает часовой пояс региона.

Тем не менее, вы можете использовать смесь JS и PHP для этого, используя ajax-вызов, который, например, устанавливает сеанс - так же, как описано в этом вопросе.

Я считаю, что в 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>")

Кто-то также боролся с этой проблемой в этой теме.

Как я могу получить местное время пользователя вместо времени сервера?

Как упоминалось ранее, вы можете использовать смесь JavaScript и PHP.

Другие вопросы по тегам