2016-10-28 8 views
0

У меня есть функция даты, которая выводит столбец DATE TIME на более читаемый способ чтения времени, например Сегодня в 9:51. Тем не менее, часовым поясом моей даты является чтение моего сервера, который является CST, США. Есть ли способ заставить его читать EST? или даже отобразить правильное время для любой области?Дата установки функции до нужного часового пояса

function fixDate($strDateTime) { 

    $strFormat = 'M, j, Y'; 
    $strFormatTime = '\a\t g:ia'; 
    $intTimeStamp = strtotime($strDateTime); 
    $strDate = date($strFormat, $intTimeStamp); 
    $strTime = date($strFormatTime, $intTimeStamp); 

    if($strDate == date($strFormat)) { 
     return "Today " . $strTime; 
    } 
    elseif($strDate == date($strFormat, strtotime('yesterday'))) { 
     return "Yesterday " . $strTime; 
    } 
    else { 
     return $strDate . " " . $strTime; 
    } 
} 
+1

Посмотрите [DateTime] (http://php.net/manual/es/class.datetime.php) и [DateTime-> setTimezone] (http://php.net/manual/ es/datetime.settimezone.php) Вы можете получить объект 'DateTime' вместо строки и до того, как« префикс »вашей даты преобразует его в клиенту' DateTimeZone'. Это проще на стороне клиента, но это можно сделать на сервере AFAIK. – jorgonor

ответ

0

Ну вы можете установить часовой пояс в вашем конфигурационном файле или в вашей функции на что-то вроде этого:

date_default_timezone_set('America/Toronto'); //whatever timezone you have 

Guess для вас это будет:

date_default_timezone_set('America/New_York'); 
0

Вы можете сделать это с помощью AJAX. Этот код будет автоматически определять часовой пояс и отображать текущее время на основе страны клиента.

Добавьте это на свою главную страницу. <div id="currentTime"></div> используется для отображения текущего времени.

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"> 
</script> 
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jstimezonedetect/1.0.4/jstz.min.js"> 
</script> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
    var zoneDetect = jstz.determine(); 
    var timezone = zoneDetect.name(); 
    $.get("cookie_set.php", {timezone: timezone}, function(result){ 
     $('#currentTime').html(result); 
    }); 
    }); 
</script> 

<div id="currentTime"></div> 

Создать другую страницу time_set.php. И добавьте следующий код. Эта страница используется для извлечения времени.

<?php 
date_default_timezone_set($_GET['timezone']); 
function fixDate($strDateTime) { 
    return $strDateTime; 
} 
echo fixDate(date('Y-m-d h:i:s')); 
?> 
Смежные вопросы