2016-07-15 4 views
-3

Hier ist mein PHP-Code, es funktioniert in localhost, aber wenn ich auf Server hochlade, funktioniert es nicht. Es dauert 1 Tag vor Daten aus der Datenbank. und i Zeitstempel als ENTRY_TIMEZählen Sie Datensätze mit dem heutigen Zeitstempel mit MySQL und PHP

bin mit
<?php 
require_once('connection.php'); 
$id=$_SESSION['SESS_MEMBER_ID']; 
$query = mysql_query("select count(*) as Unread3 from s_daily_reporting where (mem_id='$id')&&(entry_time >= DATE_SUB(CURRENT_DATE(), INTERVAL 0 DAY))"); 
$data2= mysql_fetch_array($query);  
echo $sum=8-$data2['Unread3']; 
?> 
+0

localhost vs Host nicht –

+0

Rolle, sollten Sie überprüfen Sie Ihre Server-Zeitzone –

+0

Amit, wenn eine der Antworten, die Sie geholfen Bitte wählen Sie es aus (und Upvote, wenn Sie möchten). Es braucht Zeit, um diese Antworten zu erforschen, zu testen und zu schreiben. Nicht sehr cool zu fragen und zu laufen. – BeetleJuice

Antwort

0

Sie haben die Datum Standardzeit Ihres Landes bei dem Start sonst hinzufügen wird es die Standardzeit in Betracht ziehen.

Beispiel für Indien date_default_timezone_set('Asia/Kolkata');. Sie können überprüfen, für Ihr Land Standardzeit in Google und fügen Sie das am Anfang

0

CURRENT_DATE() bereits gibt Ihnen das aktuelle Datum um Mitternacht. Wenn Sie Datensätze aus dem selben Tag wollen, brauchen Sie nichts weiter zu subtrahieren

entry_time >= DATE_SUB(CURRENT_DATE(), INTERVAL 0 DAY) 

einfach

sein Können
entry_time >= CURRENT_DATE() 

es in localhost funktioniert, aber wenn ich auf dem Server bin das Hochladen es ist nicht funktioniert es unter 1 Tag, bevor die Daten aus der Datenbank

Ob Sie auf localhost sind oder leben sollte keinen Unterschied, um Ihre Ergebnisse machen. Wenn Sie bestätigen, dass der Code lokal funktioniert, ist das Problem wahrscheinlich, dass entry_time mit einem Zeitzonenoffset gespeichert wurde, der sich von der aktuellen Zeitzone des Servers unterscheidet. Dies ist besonders wahrscheinlich, wenn die Daten auf einem anderen Server erstellt und dann auf den aktuellen übertragen wurden oder wenn die Anwendung die Daten von einem Remotestandort aus auf dem MySQL-Server gespeichert hat. So oder so, wenn der Server entry_time mit CURRENT_DATE() vergleicht, kann es keine zuverlässigen Ergebnisse erhalten, weil es denkt, dass die beiden aus derselben Zeitzone stammen.

Um dies zu beheben, sollten Sie wahrscheinlich die Zeitzone des Servers einstellen, wenn Sie eine Verbindung herstellen. Sobald Sie angeschlossen haben, führen Sie die folgende Abfrage, bevor Sie Zeit Operationen zu tun (für Ihre Zeitzone einstellen Offset):

SET timezone = '+0:00' 
Verwandte Themen