-1
我從表單中取出兩個日期格式爲mm/dd/yyyy
格式。現在我將這兩個日期轉換爲等效的UNIX時間戳值,並創建一個SQL查詢以從數據庫中獲取落入此範圍的記錄。小代碼snippett爲此如下給出:如何從PHP中的UNIX時間戳獲取正確的日期?
if($request['from_date']!='' && $request['to_date']!='') {
$from_date = clean($request['from_date']);
$to_date = clean($request['to_date']);
list($fd, $fm, $fy) = explode('/', $from_date);
list($td, $tm, $ty) = explode('/', $to_date);
$mk_from_time = mktime(0, 0, 0, $fm, $fd, $fy);
$mk_to_time = mktime(0, 0, 0, $tm, $td, $ty);
$date_range = " (user_reg_date BETWEEN ".$mk_from_time." AND ".$mk_to_time.") ";
}
格式正確的查詢與其他代碼生成並給我的結果。但我的問題是,當我輸入兩個日期即, 01/07/2013 and 31/07/2013
並從DB獲取記錄,那麼它實際上是給記錄from date 01/07/2013 to date 30/07/2013
。實際上預計會有記錄,直到31/07/2013
。如果我將日期記錄爲01/08/2013
,那麼它會根據我的要求將記錄返回至31/07/2013
。簡而言之,手段to date
滯後一天。任何人都可以幫我解決這個問題嗎?提前致謝。另一個重要的是DB中的字段user_reg_date
包含UNIX時間戳格式中的所有值。
感謝您的回答。但是,你能解釋我在哪裏使用你的代碼snippett。從開始日期或迄今爲止,或兩者兼而有之 – PHPLover
你有一個行'$ mk_to_time = mktime(0,0,0,$ TM,$ TD,$ TY);'將其更改爲'$ mk_to_time = mktime(23,59,59,$ TM,$ TD,$ ty);' – RiggsFolly
我按照你所說的改變了路線,但仍然落後了5個半小時。意思是,如果我給出的日期爲2013年7月31日,並將其轉換爲用戶可讀的格式,它給予週三,2013年7月31日18:29:59 GMT。意味着它仍然落後5個半小時。你能幫我嗎? – PHPLover