2012-04-03 191 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