2012-05-10 80 views
1

我想通過使用Codeigniter構建的站點URL在下面傳遞MySQL Datetime值。因此,日期時間值例如是如何使用CodeIgniter在URL中傳遞MySQL日期時間值?

2012-05-04 07:41:45 

而且我希望它通過一些使用編碼或字符串轉換王的站點URL傳遞。 正如我已經嘗試使用PHP urlencode()函數,但它不工作。

在URL中傳遞此信息的原因是因爲我在查詢與該日期時間相關的數據庫中的某些記錄。所以我必須將它作爲控制器的參數傳遞,並且我必須將它傳遞給URL。

有什麼建議嗎?

在此先感謝。

回答

3

簡單:

function receiving_function($time) 
{ 
    $date = date("Y-m-d h:i:s", $time); // Format this however you want the data 
} 


function sending_data() 
{ 
    $date = strtotime("2012-05-04 07:41:45"); 
    redirect ('/yourcontroller/receiving_function/'.$date). 
} 
+0

謝謝你,沒有在receiving_function幻燈片錯誤,雖然,但它並沒有在這個問題請讓你的答案是正確的:) – aslamdoctor

+0

它應該是$日期=日期(「YMD H:我:■」 ,$ time); In receiving_function():) – aslamdoctor

+0

'receiving_function'不需要額外的'strtotime',它已經是一個時間戳了。 –

1

如果你的日期時間是時間戳邊界之內,你可以將其轉換爲一個Unix時間戳:

function mysql2timestamp($datetime){ 
    $val = explode(" ",$datetime); 
    $date = explode("-",$val[0]); 
    $time = explode(":",$val[1]); 
    return mktime($time[0],$time[1],$time[2],$date[1],$date[2],$date[0]); 
} 
1

只使用strtotime

echo strtotime('2012-05-04 07:41:45'); 

輸出:

1336088505 

你也可以base64_encode它來保存確切的字符串,但我懷疑這是真正的麥汁h拍攝;-)

1

爲了保持精確的字符串,我有時任何非標準的網址查詢值從ASCII轉換爲十六進制。在下一頁上,從十六進制轉換爲ASCII。

參考http://www.pgregg.com/projects/php/code/hexstr.phps

在某些情況下,我覺得它有用通過搜索查詢關鍵字時也是如此。

1

「這是一個應用程序!」

Codeigniter提供了一個方便的加密類 - 與base64相比沒有主要改進,但好處是您可以選擇所需的密碼。

而不是傳入URI,你不能從$ _GET收集?

$this->load->library('encrypt'); 

$datetime = "2012-05-04 07:41:45"; 

$encrypted_string = $this->encrypt->encode($datetime); 

$hello_again = $this->encrypt->decode($encrypted_string); 
相關問題