Codeigniter Zeitzone mysql-Einstellungen
Erkannt, WARUM meine Website zeigt jetzt alle datetime-Variablen als -1 hr... ich bin mit Codeigniter für die erste Zeit! (Hatte nie dieses problem vor)
So, ich habe folgenden code in meiner main index.php Datei
/*
|---------------------------------------------------------------
| DEFAULT TIMEZONE
|---------------------------------------------------------------
|
| Set the default timezone for date/time functions to use if
| none is set on the server.
|
*/
if( ! ini_get('date.timezone') )
{
date_default_timezone_set('GMT');
}
Jedoch, es ist noch zu zeigen, wie -1 hr, also ich nehme an, ich brauche, um eine Art default-Einstellung für MySQL...
Ich habe die folgende code-Zeile in meinem Modell:
function __construct()
{
// Call the Model constructor
parent::__construct();
$this->db->query("SET time_zone='+0:00'");
}
Immer noch kein Unterschied... Hilfe!!!
Mein code ist:
<h3><?=date('D, jS F @ g:ia', strtotime($row->datetime))?></h3>
$Row->datetime-variable ist nichts anderes als eine DATETIME-Spalte mit dem Wert aus meiner MySQL-Datenbank. Die echo-variable ist IMMER 1 Stunde weniger als den Wert in meine Datenbank...
Mein Modell code:
function coming_up()
{
$this->db->query("SET time_zone='+0:00'");
$query = $this->db->query('SELECT * FROM events1 WHERE datetime >= NOW() ORDER BY datetime LIMIT 2');
return $query->result();
}
InformationsquelleAutor user2505513 | 2013-07-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
In config/autoload.php legen ein Modell zu laden, auf jeder Seite laden. dann rufen wir $this->db->query("SET time_zone='+0:00'"); in diesem Modell-Konstruktor.
config/autoload.php
In application/models, erstellen Sie eine neue Modelldatei mit dem Namen "default_model.php" und fügen Sie folgenden code.
application/models/default_model.php
Auf jeder Seite laden, dieser Konstruktor wird aufgerufen und mysql timezone auf +0:00.
$this->db->query("SET time_zone='America/Chicago'");
Hinweis: Sie müssen die mysql-Zeit-Zonen-setup - mysql_tzinfo_to_sqlDas ist fantastisch, danke!
Es wäre auch eine gute Idee, fügen Sie so etwas wie
date_default_timezone_set('TIMEZONE_SET_FOR_DATABASE');
zu application/config/config.php nur unterhalb der Zeiledefined('BASEPATH') OR exit('No direct script access allowed.');
date_default_timezone_set ist bis auf php-Ebene. Wenn Sie die db-und php-Dateien befinden sich auf demselben server und mysql verwendet den gleichen Zeitzone, dann können Sie es verwenden, aber nicht sicher über die mysql-Verhalten. Wenn sich die Datenbank in einem anderen server, dann haben Sie zu Folgen, meine Lösung.
InformationsquelleAutor Kumar V
Fügen Sie diese Zeile in Ihrem
config file
und dann schauen Sie, es ist für mich arbeitenÜberprüfen Sie Ihre
insert query
es Aussehen sollte$this->db->query("INSERT INTO TABLE SET time_zone='+0:00'");
Siehe oben, ich habe editiert meinen post auch mit meinen Abfrage-code @Rohan Kumar immer Noch kein Unterschied!
arbeitete für mich! 🙂
InformationsquelleAutor Rohan Kumar
Mir gefällt die vorgeschlagene Lösung von Kumar allerdings habe ich nicht benötigen, um diese weltweit, nur bei der Anzeige von gespeicherten Daten in UTC-Zeit in meiner db.
In meinem api-Modell habe ich die folgende Funktion.
Von meinem controller rufe ich die folgenden erste.
Gefolgt von dem Aufruf der Funktion, die Abfragen in der db. Zum Beispiel bin ich mir Holen einige user Geschichte.
Wenn ich die Ausgabe angezeigt, die Termine werden in meiner Zeitzone. Ich hoffe, dies hilft jemand, irgendwo in der Zeit (konnte nicht widerstehen).
InformationsquelleAutor Danimal Reks
Können Sie es in der index.php Datei in Ihrem Projekt-Ordner auf der Oberseite und nach
<?php
InformationsquelleAutor Sochy