2016-07-15 1 views
-3

これは私のPHPコードですが、localhostで動作していますが、サーバにアップロードしているときに動作しません。データベースからデータの1日前に取得しています。 と私はそれ以外の場合は標準時間を検討するあなたは、開始時に、あなたの国の日付のデフォルトの時間を追加する必要がENTRY_TIMEMySQLとPHPを使用して今日のタイムスタンプを持つレコードをカウント

<?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が答えの一つがあなたを助けている場合、サーバーのタイムゾーン –

+0

問題ではないはず、それを選択してください(そしてあなたが望むなら、upvote)。これらの答えを研究し、テストし、書き留めるには時間がかかります。聞いて実行するのは非常にクールではない。 –

+0

アミットを確認してください – BeetleJuice

答えて

0

としてタイムスタンプを使用しています。インドdate_default_timezone_set('Asia/Kolkata');ため

例。あなたはグーグルにあなたの国のデフォルトの時間をチェックし、すでにあなたに真夜中に現在の日付を与える開始

0

CURRENT_DATE()でそれを追加することができます。あなたが同じ日からレコードをしたい場合、あなたは何

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

を減算する必要はありません。単に

entry_time >= CURRENT_DATE() 

ことができます、それは、ローカルホストで働いているが、私は、サーバー上でアップロードしていたときにそれがあります データベースからのデータを1日前に取ることができません

ローカルホストであってもライブであっても、結果には違いはありません。コードがローカルで動作することを確認すると、entry_timeがサーバーの現在のタイムゾーンとは異なるタイムゾーンオフセットで格納されている可能性があります。これは、データが別のサーバで構築され、現在のサーバに転送された場合、またはデータを保存したアプリケーションがリモートサーバからMySQLサーバに接続されている場合に特に発生します。どちらの場合でも、サーバがentry_timeCURRENT_DATE()を比較すると、2人が同じタイムゾーンにあると考えられるため、信頼できる結果を得ることができません。あなたが接続したときに

は、この問題を解決するには、あなたはおそらく、サーバーのタイムゾーンを設定する必要があります。あなたが接続したら、(オフセットタイムゾーンを調整)、いつでも操作を行う前に、次のクエリを実行します。ホスト対

SET timezone = '+0:00' 
関連する問題