2014-02-12 6 views
0

Я использую php и kohana framework.Below - это код php, который я использую, чтобы показать дату и время.локализовать время в php - Kohana

$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> 

Update: мое собственное решение пытался

$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 

мне нужно локализовать зависит от локальной машины времени пользователь using.If пользователь может видеть мою страницу из «Индия» время должно корректироваться с индийским временем, если та же самая страница просматривается в США или Великобритании, время должно быть скорректировано с США или Великобританией.

Как я могу это сделать в кохане или php.

+0

, пожалуйста, ознакомьтесь с моим обновлением, пожалуйста, сообщите, правильно ли получено решение от меня – user2681579

ответ

0

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

Однако, вы можете использовать сочетание JS и PHP, чтобы сделать это, используя вызов Ajax, который устанавливает сеанс, например, - то же самое, как описано in this question

+0

, пожалуйста, см. Мое обновление, правильно ли принято решение. – user2681579

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.

+0

, пожалуйста, см. Мое обновление, правильно ли получено решение от меня – user2681579

+0

. Вы не получите время на стороне клиента, так как вы установите его в определенную страну, и вы конвертируете только временную метку, чтобы иметь другую нотацию чем в нужное время. Ник упомянул использовать смесь между JavaScript и PHP. Вы можете получить время, сохраненное в сеансе, этим Javascript, используя $ _SESSION и сохранить его внутри переменной $ messagedate. – Saidin

Смежные вопросы