2012-04-03 186 views
1

当我拉月度报告它只是显示出来的那一天,从每月的第2天的条目是之前的最后的一个月。例如,对于四月的月报告只显示:按月UNIX时间戳问题

04/02/12 - 12年4月29日

我可以修改什么,显示的条目:

12年4月1日 - 04/30/12

$month = $_GET['month']; 
if ($services =  $db->get_results("SELECT * from vw_newservices where month(from_unixtime(datetime)) = '$month'")) { 
foreach ($services as $service) { 
$datetime = date("m/d/y",$service->datetime); 

由于

回答

1

从手册:

注:如果您使用UNIX_TIMESTAMP()和FROM_UNIXTIME()转换成TIMESTAMP值和Unix时间戳值之间 ,转换 有损因为映射不是一个对一个在两个方向上。对于 例如,由于约定本地时区变化,这是 可能两个UNIX_TIMESTAMP()来映射2个TIMESTAMP值到 相同Unix时间戳值。 FROM_UNIXTIME()将映射该值重新 只有原始时间戳值中的一个。

here.

如果你想有没有考虑时区的unix_timestamps,你可以自己进行计算。

MySQL的

从时间戳unixtime:

SELECT timestampdiff(second, '1970-01-01', yourTimestampColumnOrValue); 

另一种方式

SELECT timestampadd(second, yourTimestampColumnOrValue, '1970-01-01'); 

对于SQL服务器看到这个link