2016-07-15 64 views
-3

这是我的PHP代码,它在localhost中工作,但是当我在服务器上上传时,它不起作用。从数据库获取数据需要1天的时间。 ,我使用时间戳entry_time使用MySQL和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

本地主机VS主机不应该的问题 – 2016-07-15 04:58:31

+0

请检查您的服务器时区 –

+0

阿米特如果其中一个答案帮你,请选择它(并且如果你愿意的话可以upvote)。研究,测试和撰写这些答案需要时间。问和跑并不是很酷。 – 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()进行比较时,无法获得可靠的结果,因为它认为两者来自同一时区。

要解决此问题,您应该在连接时设置服务器的时区。一旦连接,做任何时候操作之前运行以下查询(调整你的时区偏移量):

SET timezone = '+0:00'