2016-10-28 10 views
0

DATE TIME列を、今日の9:51のような読みやすい方法で出力する日付関数があります。ただし、私の日付が読んでいるタイムゾーンは、私のサーバーがあるCST、USです。 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'オブジェクトを受け取って、あなたの日付を" prettifying "する前にそれをクライアント' DateTimeZone'に変換することができます。これはクライアント側では簡単ですが、サーバーAFAIKで行うことができます。 – jorgonor

答えて

0

さてあなたはこのような何かにあなたの設定ファイルにしたり、関数内でタイムゾーンを設定することができますdate_default_timezone_set()

0

を使用してみてください:それは次のようになり、あなたのため

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

推測:

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')); 
?> 
関連する問題