1

Codeigniterを使用して構築されたサイトURLで、以下のようなMySQL日時の値を渡したいと思います。したがって、日時の値は次のようになります。

2012-05-04 07:41:45

そして、エンコーディングまたは文字列変換の王様を使用して、サイトのURLで渡されるようにします。私はすでにphpurlencode()関数を使用しようとしましたが、機能していません。

これをURLで渡す理由は、その日時に関連するデータベースからいくつかのレコードをクエリしているためです。したがって、それを引数としてコントローラーに渡す必要があり、そのためにURLで渡す必要があります。

なにか提案を?

前もって感謝します。

4

5 に答える 5

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).
}
于 2012-05-10T07:40:24.990 に答える
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]);
}
于 2012-05-10T07:32:56.587 に答える
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);
于 2013-01-10T14:52:15.440 に答える
1

ただ使うstrtotime

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

出力:

1336088505

正確な文字列を保存することもできますがbase64_encode、それが本当に価値があるとは思えません;-)

于 2012-05-10T07:37:35.320 に答える
1

正確な文字列を保持するために、非標準の URL クエリ値を ASCII から 16 進数に変換することがあります。次のページで、16 進数から ASCII に変換します。

http://www.pgregg.com/projects/php/code/hexstr.phpsを参照してください。

場合によっては、検索クエリのキーワードを渡すときにも役立ちます。

于 2012-05-10T07:41:04.877 に答える