2016-08-11 13 views
1

私はWooCommerce予約プラグインを使用しています。予約にフックし、開始日を取得し、それをUNIXのタイムスタンプ形式としてデータベースにインポートする必要があります。 WooCommerce予約開始日をデータベースに書き込もうとしています

この

は私がしようとすると、開始日を取得するために使用していたコードです:私はそれがWC_Bookingクラスを使用して取得しようとしています

$wcBooking = new WC_Booking($original_order_id); 
$current_timestamp = strtotime($wcBooking->get_start_date()); 

を、私はここで、このクラスhttp://pastebin.com/JGjDKyrj

これを貼り付けていますコードが実行されている、それだけでデータベースに次のように入れている:

1970-01-01夜十二時00分00秒

ご協力いただきありがとうございます。

+0

この '$ wcBooking-> get_start_date()'をエコーすると、実際にその呼び出しから何が得られているのかが分かります。おそらくあなたが期待していたものではないでしょう – RiggsFolly

+0

'get_start_date()'のコードを読んでみてください。どうしても問題がはっきりしています。 – RiggsFolly

+0

このコードを別のプラグインの関数として追加していますが、残念なことにそれは単に – AppleTattooGuy

答えて

0

カラムがDATETIMEタイプの場合、MYSQLはYYYY-MM-DD hh:mm:ssフォーマットで、4桁の年、2桁の月と日、時と分、秒の形式でMySQLデータ形式で書式を設定する必要があります。これを受け取っていないときは、あなたが記述しているようにUNIXエポック時間に置き換えられます。

1行は、UNIX時間から、正しい日付形式に再フォーマット変更、:

$current_timestamp = date('Y-m-d H:i:s', strtotime($wcBooking->get_start_date()));

また同じようget_start_date()に日付/時刻のパラメータを設定することがあります。

$current_timestamp = $wcBooking->get_start_date('Y-m-d', 'H:i:s');

+0

ありがとう、それは今データベースとして1970-01-01 00:32:50 – AppleTattooGuy

+0

ペーストビンのクラスでは – AppleTattooGuy

+0

/**と書いてあります\t *返品予約の終了日 \t * @返品日date_i18nでフォーマットされた日付 \t */ – AppleTattooGuy

1

ガットそれは次のコードが動作します:

$wcBooking = new WC_Booking($original_order_id); 
      $dataString = $wcBooking->get_start_date('Y-m-d', 'H:i:s'); 
      $current_timestamp = strtotime($dataString); 
関連する問題