2016-08-02 2 views
0

ボタンをクリックしたときに自動的に設定されたdatetimeを挿入しようとします。私はそのボタンについて気にしない。私はちょうど形式がどのように見えるか知りたい。私はこの構文について見たdate_default_timezone_set('Asia/Kuala_Lumpur');しかし、私はPDOのPHPを使用して、正しいタイムゾーンでデータベースに挿入し、後で正しい形式で時間を再度呼び出すことができます。私はこの構文が初めてです。これまでのところ私はクエリの前に置いて、それをエコーし​​ようとしています。それは変化しましたが、挿入すると全く変化しません。もちろん、私はこのコードを投稿する前でした。助けてください。どこに置くべきですか?希望するタイムゾーンでデータベースにdatetimeを挿入するには?

//===================== 
date_default_timezone_set('Asia/Kuala_Lumpur'); 
echo date('Y-m-d H:i:s T', time());    

$query = " INSERT INTO record ( 
       bdatetime, 
       bstatus, 
       bmatricno_fk, 
       serialno_fk 
      ) VALUES (
       NOW(), 
       'NEW', 
       :bmatricno, 
       :ses 
      )"; 

foreach($ses as $s) {     
    $query_params = array( 
     ':bmatricno' => $_POST['bmatricno'], 
     ':ses' => $s 
    ); 

    try { 
     // Execute the query to create the user 
     $stmt = $db->prepare($query); 
     $result = $stmt->execute($query_params); 
    } catch(PDOException $ex) { 
     // Note: On a production website, you should not output $ex->getMessage(). 
     // It may provide an attacker with helpful information about your code. 
     die("Failed to run query: " . $ex->getMessage()); 
    } 
+0

'date_default_timezone_set'はPHPのタイムゾーン設定ではなく、データベース接続に影響を与えます。 'date( 'Y-m -d H:i:s T'、time())'の値を直接データベースに挿入するか、データベースのタイムゾーンを必要なものに合わせてください。 – apokryfos

答えて

1
date_default_timezone_set('Asia/Kuala_Lumpur'); 
$newDate = date('Y-m-d H:i:s T', time()); 


$query = " 
     INSERT INTO record ( 
      bdatetime, 
      bstatus, 
      bmatricno_fk, 
      serialno_fk 
     ) VALUES (
      :newDate, 
      'NEW', 
      :bmatricno, 
      :ses 
     ) 
    "; 

foreach ($ses as $s) { 

    $query_params = array(
     ':bmatricno' => $_POST['bmatricno'], 
     ':ses' => $s, 
     ':newDate' => $newDate 
    ); 

    try 
    { 
     // Execute the query to create the user 
     $stmt = $db->prepare($query); 
     $result = $stmt->execute($query_params); 
    } catch (PDOException $ex) 
    { 
     // Note: On a production website, you should not output $ex->getMessage(). 
     // It may provide an attacker with helpful information about your code. 
     die("Failed to run query: " . $ex->getMessage()); 
    } 
} 

あなたはこれを試すことができます。 PDOについてもう少し詳しくお読みください。

http://php.net/manual/en/book.pdo.php

そして、あなたの場合は

http://php.net/manual/en/pdostatement.bindparam.php

関連する問題