2016-10-28 3 views
0

Ich habe eine Datumsfunktion, die die DATE TIME Spalte zu einer besser lesbaren Lesezeit ausgibt, z. B. Today um 9:51. Die Zeitzone, die mein Datum liest, ist jedoch diejenige, auf der sich mein Server befindet, nämlich CST, US. Gibt es eine Möglichkeit, EST zu lesen? oder sogar die korrekte Zeit für irgendeinen Bereich anzeigen?Einstellen der Datumsfunktion auf die richtige Zeitzone

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

Werfen Sie einen Blick auf [Datetime] (http://php.net/manual/es/class.datetime.php) und [DatumZeit-> setTimezone] (http://php.net/manual/ es/datetime.settimezone.php) Sie könnten ein 'DateTime' Objekt anstelle einer Zeichenkette erhalten und vor dem" Verschönern "Ihres Datums konvertieren Sie es in den Client' DateTimeZone'. Dies ist auf der Client-Seite einfacher, aber es kann in dem Server AFAIK getan werden. – jorgonor

Antwort

0

gut Sie die Zeitzone, in der Config-Datei oder in Ihrer Funktion zu so etwas wie dies einstellen:

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

Raten für Sie wäre es:

date_default_timezone_set('America/New_York'); 
0

Sie können dies mit AJAX tun. Dieser Code erkennt automatisch die Zeitzone und zeigt die aktuelle Uhrzeit basierend auf dem Land des Kunden an.

Fügen Sie diese zu Ihrer Hauptseite hinzu. verwenden, um die aktuelle Uhrzeit anzuzeigen.

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

Eine weitere Seite erstellen time_set.php. Und folgenden Code hinzufügen. Diese Seite wird verwendet, um die Uhrzeit abzurufen.

<?php 
date_default_timezone_set($_GET['timezone']); 
function fixDate($strDateTime) { 
    return $strDateTime; 
} 
echo fixDate(date('Y-m-d h:i:s')); 
?> 
Verwandte Themen