您在這裡

關於view的篩選設定

shirley_34's 的頭像
shirley_34 在 2012-03-19 (週一) 16:57 發表

我又來求救了QQ
最近正在作捐款名冊的東西
由於手動設定一個個tab很麻煩
所以就想說讓使用者自己選擇要觀看哪個月份的資料
發現了exposed好用的地方

可是剛剛發現一個冏境
由於我的捐款名冊只會顯示捐款人姓名以及金額
所以過往的資料時間點都是設在每月的一號
但是出來的結果
會顯示在上個月的清單裡面
詳細如圖(實際頁面)

進入之後會看到
01
選擇2011/03會只出現一筆
可是我明明有很多筆都是2011/03/01的資料
02
點進去看該筆資料卻發現他是四月的
可是我明明就選三月
03

看內部詳細的view設定
04
篩選器的部分
05
該欄位的設定
06

我不知道哪裡出了問題
不管我怎麼設
只要是那個月的第一天就會被歸類到上個月去
很困擾押ˊ ˋ

附上我這邊看到的SQL碼
SELECT node.nid AS nid, node_data_field_donatedate.field_donatedate_value AS node_data_field_donatedate_field_donatedate_value, node.type AS node_type, node.vid AS node_vid, node_data_field_moneyuse.field_donatename_value AS node_data_field_moneyuse_field_donatename_value, node_data_field_moneyuse.field_donatemoney_value AS node_data_field_moneyuse_field_donatemoney_value FROM node node LEFT JOIN content_field_status node_data_field_status ON node.vid = node_data_field_status.vid LEFT JOIN content_type_donate_paper node_data_field_moneyuse ON node.vid = node_data_field_moneyuse.vid LEFT JOIN content_type_donate_paper node_data_field_donatedate ON node.vid = node_data_field_donatedate.vid WHERE ((node.type in ('donate_paper')) AND ((node_data_field_status.field_status_value) = ('已收到')) AND ((node_data_field_moneyuse.field_moneyuse_value) = ('捐款'))) AND (DATE_FORMAT(STR_TO_DATE(node_data_field_donatedate.field_donatedate_value, '%Y-%m-%dT%T'), '%Y-%m') = '2009-01') ORDER BY node_data_field_moneyuse_field_donatemoney_value ASC
不過我看不太出來哪裡有問題QQ

不知道有沒有人有解阿ˊ ˋ
感謝

圖片: 

當妳選擇time zone時, 以台北時區為例, 是UTC/GMT +8 hours
所以CCK儲存在資料庫的時間是你所選擇的時間再減去8小時
等到要顯示時, 因為網站設為台北時區, 所以再加8小時
所以透過views module顯示的時間也必需經過時區轉換才是正確的!